簡體   English   中英

更新功能在使用node.js和angular js的MEAN Stack中不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM