Advertisement
Guest User

Untitled

a guest
Oct 16th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. var mongoose = require('mongoose');
  2. var bcrypt = require('bcrypt');
  3. var Schema = mongoose.Schema;
  4. const SALT_WORK_FACTOR = 10;
  5.  
  6. var userSchema = new Schema({
  7. email: {
  8. type: String,
  9. required: true,
  10. unique: true
  11. },
  12. password: {
  13. type: String,
  14. required: true
  15. },
  16. name:{
  17. type: String
  18. }
  19. });
  20.  
  21.  
  22. userSchema.pre('save', function(next){
  23. var user = this;
  24.  
  25. if(!user.isModified('password')){
  26. return next();
  27. }
  28.  
  29. bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt){
  30. if(err){
  31. return next(err);
  32. }
  33.  
  34. bcrypt.hash(user.password, salt, function(err, hash){
  35. if(err){
  36. return next(err);
  37. }
  38.  
  39. user.password = hash;
  40. next();
  41. });
  42. });
  43. });
  44.  
  45. module.exports = mongoose.model('User', userSchema);
  46.  
  47. var User = require('../../models/userModel');
  48.  
  49. module.exports.create = function(data, callback){
  50. var user = new User({
  51. email: data.email,
  52. password: data.password,
  53. name: data.name
  54. });
  55. user.save(function(err, user){
  56. if(err){
  57. callback(err);
  58. return;
  59. }
  60. callback(null, user);
  61. });
  62. };
  63.  
  64.  
  65. module.exports.read = function(key, callback){
  66. User.findOne({email:key}, function(err, user){
  67. if(err){
  68. return callback(err);
  69. }
  70.  
  71. if(!user || user === 'undefined'){
  72. return callback(new Error('User has not been not found!'));
  73. }
  74.  
  75. callback(null, user);
  76. });
  77. };
  78.  
  79.  
  80. module.exports.update = function(key, data, callback) {
  81. User.findOne({email: key}, function (err, user) {
  82. if(!user || user === 'undefined'){
  83. return callback(new Error('User has not been found!'));
  84. }
  85.  
  86. if(data.email){
  87. user.email = data.email;
  88. }
  89.  
  90. if(data.password){
  91. user.password = data.password;
  92. }
  93.  
  94. if(data.name){
  95. user.name = data.name;
  96. }
  97.  
  98. user.save(function(err, user){
  99. if(err){
  100. return callback(err);
  101. }
  102. callback(null, user);
  103. });
  104. });
  105. };
  106.  
  107.  
  108. module.exports.delete = function(key, callback){
  109. User.remove({ 'email' : key}, function(err, object){
  110. if(err){
  111. return callback(err);
  112. }
  113. if(object.result.n === 0){
  114. return callback(new Error('Element has not been deleted!'));
  115. }
  116. });
  117. };
  118.  
  119.  
  120. module.exports.list = function(callback){
  121. User.find({}, function(err, users){
  122. if(err){
  123. return callback(err);
  124. }
  125. if(users.length === 0){
  126. return callback(new Error('Users have not been found!'));
  127. }
  128. callback(null, users);
  129. });
  130. };
  131.  
  132. var mongo = require('./libs/db/mongo');
  133. var userActions = require('./libs/db/userActions');
  134. var debug = require('debug')('test.js');
  135.  
  136. mongo.connect('mongodb://localhost/test').once('open', function(){
  137. console.log('Connected to database!');
  138.  
  139. var userData = {
  140. email: 'testmail1',
  141. password: 'testpass',
  142. name: 'testname'
  143. };
  144.  
  145. userActions.create(userData, function(err, user){
  146. if(err){
  147. debug('MongooseError: ' + err);
  148. return;
  149. }
  150. debug('User has been created: ' + user);
  151. });
  152.  
  153. var userEdit = {
  154. email: 'testmail_edit',
  155. password: 'testpass_edit',
  156. name: 'testname_edit'
  157. };
  158.  
  159. userActions.update('testmail', userEdit, function(err, user){
  160. if(err){
  161. debug('MongooseError: ' + err);
  162. return;
  163. }
  164. debug('User has been edited: ' + user);
  165. });
  166.  
  167. userActions.delete('testmail3', function(err){
  168. if(err){
  169. debug('MongooseError: ' + err);
  170. return;
  171. }
  172. debug('User has been deleted!');
  173. });
  174.  
  175.  
  176. userActions.read('testmail', function(err, user){
  177. if(err){
  178. debug('MongooseError: ' + err);
  179. return;
  180. }
  181. debug('User has been found: ' + user);
  182. });
  183.  
  184. userActions.list(function(err, users){
  185. if(err){
  186. debug('MongooseError: ' + err);
  187. return;
  188. }
  189. debug('Users have been found: ' + users);
  190. });
  191. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement