Javascript 更新函数在使用node.js和angular js的平均堆栈中不起作用
您好,我是mean stack的初学者,我想使用update更新记录 功能我确实成功保存了记录,但更新功能不起作用 我想根据id更新一个特定对象,但它不起作用 我正在使用此函数更新节点js文件中的记录Javascript 更新函数在使用node.js和angular js的平均堆栈中不起作用,javascript,angularjs,node.js,mongodb,Javascript,Angularjs,Node.js,Mongodb,您好,我是mean stack的初学者,我想使用update更新记录 功能我确实成功保存了记录,但更新功能不起作用 我想根据id更新一个特定对象,但它不起作用 我正在使用此函数更新节点js文件中的记录 module.exports.useredit = function (req, res) { var user = new Usermodel(); user = req.body.dataToModify; console.log(u
module.exports.useredit = function (req, res)
{
var user = new Usermodel();
user = req.body.dataToModify;
console.log(user);
user.update({ _id:user._id },user);
};
当我使用console.log(用户)时代码>更新数据显示如下
{ _id: '5846692617e0575c0e0c2211',
password: 123456,
email: 'shahjad.ahmad89@gmail.com',
name: 'shahjad232324324324',
__v: 0 }
但数据并没有更新。显示我使用时的错误消息
user.update({ _id:user._id },user);
错误是
user.update is not a function</h1>↵<h2></h2>↵<pre>TypeError: user.update is not a function↵ at module.exports.useredit (C:\Users\Ahmad\ticket\controller\usercontroller.js:102:10)↵ at Layer.handle [as handle_request] (C:\Users\Ahmad\ticket\node_modules\express\lib\router\layer.js:95:5)↵ at next (C:\Users\Ahmad\ticket\node_modules\express\lib\router\route.js:131:13)↵ at Route.dispatch (C:\Users\Ahmad\ticket\node_modules\express\lib\router\route.js:112:3)↵ at Layer.handle [as handle_request] (C:\Users\Ahmad\ticket\node_modules\express\lib\router\layer.js:95:5)↵ at C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:277:22↵ at Function.process_params (C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:330:12)↵ at next (C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:271:10)↵ at Function.handle (C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:176:3)↵ at router (C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:46:12)↵ at Layer.handle [as handle_request] (C:\Users\Ahmad\ticket\node_modules\express\lib\router\layer.js:95:5)↵ at trim_prefix (C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:312:13)↵ at C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:280:7↵ at Function.process_params (C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:330:12)↵ at next (C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:271:10)↵ at C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:618:15</pre>↵"
user.update不是一个函数↵↵TypeError:user.update不是一个函数↵ 在module.exports.useredit(C:\Users\Ahmad\ticket\controller\usercontroller.js:102:10)↵ 在Layer.handle[作为handle\u请求](C:\Users\Ahmad\ticket\node\u modules\express\lib\router\Layer.js:95:5)↵ 下一步(C:\Users\Ahmad\ticket\node\u modules\express\lib\router\route.js:131:13)↵ at Route.dispatch(C:\Users\Ahmad\ticket\node\u modules\express\lib\router\Route.js:112:3)↵ 在Layer.handle[作为handle\u请求](C:\Users\Ahmad\ticket\node\u modules\express\lib\router\Layer.js:95:5)↵ 在C:\Users\Ahmad\ticket\node\u modules\express\lib\router\index.js:277:22↵ 在Function.process_参数处(C:\Users\Ahmad\ticket\node\u modules\express\lib\router\index.js:330:12)↵ 下一步(C:\Users\Ahmad\ticket\node\u modules\express\lib\router\index.js:271:10)↵ 位于Function.handle(C:\Users\Ahmad\ticket\node\u modules\express\lib\router\index.js:176:3)↵ 在路由器(C:\Users\Ahmad\ticket\node\u modules\express\lib\router\index.js:46:12)↵ 在Layer.handle[作为handle\u请求](C:\Users\Ahmad\ticket\node\u modules\express\lib\router\Layer.js:95:5)↵ 在trim_前缀处(C:\Users\Ahmad\ticket\node_modules\express\lib\router\index.js:312:13)↵ 在C:\Users\Ahmad\ticket\node\u modules\express\lib\router\index.js:280:7↵ 在Function.process_参数处(C:\Users\Ahmad\ticket\node\u modules\express\lib\router\index.js:330:12)↵ 下一步(C:\Users\Ahmad\ticket\node\u modules\express\lib\router\index.js:271:10)↵ 在C:\Users\Ahmad\ticket\node\u modules\express\lib\router\index.js:618:15↵"
如何重新下载以及如何将数据更新到mongodb。尝试以下方法:
module.exports.useredit=函数(req,res){
变量id=请求参数id,
body=req.body,
选项={
厄普塞特:没错,
新:真的
}
findOneAndUpdate({u id:id)},主体,选项,函数(err,User){
if(err){res.json(err)}else{res.json(user)}
}
}
注意,mongoDB.user.findOneAndUpdate,“mongoDB”是通用的。这是您对mongoDB架构的引用名称,无论您如何命名它。您也可以尝试
user.findOneAndUpdate({_id:user._id}, user, {upsert:true}, function(err, doc){
if (err)
return res.send(500, { error: err });
return res.send("userdata updated successfully");
});
试试这个
这里,“upsert=true”选项创建不存在的对象
默认为false。what mongoDB.User.findOneAndUpdate在这一行中,what is Users通常在另一个文件中引用mongoDB架构,我不确定您的文件结构如何。似乎您可能没有此结构,请去掉mongoDB。
user.findOneAndUpdate({_id:user._id}, user, {upsert:true}, function(err, doc){
if (err)
return res.send(500, { error: err });
return res.send("userdata updated successfully");
});