2017-03-23 64 views

回答

0

在目錄'routes'中,生成一個新的Javascript文件。它應該是這樣:

module.exports.findUser = function(req, res, next){ 
    User.findOne({ 'local.email': req.body.email }, function(err, user) { 
     if(!user){ 
      res.status(404).send('User with the e-mail address ' + req.body.email + ' is not found'); 
     } else { 
      res.status(200).send(user); 
     } 
    } 
} 

module.exports.editUser = function(req, res, next){ 
    User.update({ 'local.email': req.body.email }, req.body.newUserObject, function(err) { 
     if(err){ 
      res.status(500).send('Something went wrong :('); 
     } else { 
      res.status(200).send('User successfully updated :)'); 
     } 
    } 
} 

對於editUser功能,您應該

  1. 發送整個用戶對象的功能newUserObject或
  2. 使用類似:{$設置:{ keyToUpdate1:​​valueToUpdate1,keyToUpdate2:valueToUpdate2}}

如果你想給用戶的角色,如 '管理員', 'SectionAdmin', 'RegularUser', '客戶' 和這樣的,你應該將它們保留在用戶架構中,如:

var mongoose = require('mongoose'); 
var bcrypt = require('bcrypt-nodejs'); 

var userSchema = mongoose.Schema({ 
    local: { 
    email: String, 
    password: String, 
    role: String 
    }, 
}); 

userSchema.methods.generateHash = function(password) { 
    return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null); 
}; 
userSchema.methods.validPassword = function(password) { 
    return bcrypt.compareSync(password, this.local.password); 
}; 
module.exports = mongoose.model('User', userSchema); 

並檢查用戶在每一步中的角色。