![](/img/trans.png)
[英]Form validation is not working in MEAN Stack using angular js and node js
[英]Update function is not working in MEAN Stack using node.js and angular js
您好,我是中型棧的初學者,我想使用更新來更新記錄
我確實成功保存了記錄功能,但更新功能不起作用。
我想更新ID上的特定對象低音。 但這是行不通的。
我正在使用此功能更新節點js文件中的記錄
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 Schema的引用名稱。
您也可以嘗試
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”選項將創建對象(如果該對象不存在)。
默認情況下為false。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.