gpt4 book ai didi

node.js - Mongoose - findByIdAndUpdate - 不适用于 req.body

转载 作者:IT老高 更新时间:2023-10-28 13:24:56 25 4
gpt4 key购买 nike

我在通过 mongoose 更新 mongodb 中的文档时遇到问题。

我的模型如下:

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 放函数如下:

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

打印的参数以表单数据(键值)的形式提供。看起来至少对我不起作用,知道这里有什么问题吗?

最佳答案

你必须使用 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},{new:true}, function(err, result){
if(err){
console.log(err);
}
console.log("RESULT: " + result);
res.send('Done')
});
};

关于node.js - Mongoose - findByIdAndUpdate - 不适用于 req.body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27108177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com