MEAN Stack中使用node.js和angular js更新函数不起作用

你好我是平均堆栈的初学者,我想更新使用更新logging

函数我没有成功保存logging,但更新function不工作。

我想更新一个特定的对象低于id。 但它不工作。

我正在使用这个函数来更新节点js文件中的logging

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(user); 更新数据显示如下

 { _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>↵" 

如何重新使用它以及如何将数据更新到mongodb。

尝试这个:

module.exports.useredit = function (req, res){ var id = req.params.id, body = req.body, options = { upsert: true, new : true } mongoDB.User.findOneAndUpdate({_id:id)}, body, options, function(err, user) { if(err){res.json(err)}else{res.json(user)} } }

注意,mongoDB.user.findOneAndUpdate,“mongoDB”是通用的。 无论您如何命名,这是您的MongoDB架构的参考名称。

你也可以试试

 user.update({ _id:user._id },$set{user}); 

尝试这个..

 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”选项创build对象,如果不存在的话。

这是默认的错误。