Javascript 更新函数在使用node.js和angular 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

您好,我是mean stack的初学者,我想使用update更新记录

功能我确实成功保存了记录,但更新功能不起作用

我想根据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(用户)时更新数据显示如下

{ _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");
});