猫鼬-findByIdAndUpdate-不适用于req.body [英] Mongoose - findByIdAndUpdate - doesn't work with req.body
本文介绍了猫鼬-findByIdAndUpdate-不适用于req.body的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在通过mongoose更新mongodb中的文档时遇到问题.
I have a problem with update documents in mongodb over mongoose.
我的模特下面:
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');
var UserSchema = new mongoose.Schema({
first_name:{
type: String
},
last_name:{
type: String
},
email:{
type: String,
unique: true,
required: true
},
password:{
type: String,
required: true
},
is_active:{
type: Boolean,
default: true
},
last_login:{
type: Date
}
});
module.exports = mongoose.model('User', UserSchema);
下面的控制器放置函数:
Controller put function bellow:
exports.updateUser = function (req, res) {
console.log(req.body);
User.findByIdAndUpdate(req.body.user_id, {$set:req.body}, function(err, result){
if(err){
console.log(err);
}
console.log("RESULT: " + result);
});
res.send('Done')
}
控制台上的输出:
Listening on port 3000... { first_name: 'Michal', last_name: 'Test' }
PUT /api/users/54724d0fccf520000073b9e3 200 58.280 ms - 4
打印的参数作为表单数据(键值)提供.看来这至少对我没有用,这是怎么了?
The printed params are provided as form-data (key-value). Looks that is not working at least for me any idea what is wrong here?
推荐答案
您必须使用req.params.user_id
代替req.body.user_id
exports.updateUser = function (req, res) {
console.log(req.body);
User.findByIdAndUpdate(req.params.user_id,{$set:req.body}, function(err, result){
if(err){
console.log(err);
}
console.log("RESULT: " + result);
res.send('Done')
});
};
这篇关于猫鼬-findByIdAndUpdate-不适用于req.body的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文