【问题标题】:MEAN Application Update FunctionMEAN 应用程序更新功能
【发布时间】:2018-04-13 19:35:21
【问题描述】:

我正在尝试编写 MEAN 应用程序更新函数,但更新不会保存到 MongoDB 数据库。我正在尝试仅更新文档的标题。下面是我写的函数。

router.updateJob = function (req, res) {

    Job.findById(req.params.id, function(err, job) {
        if (err)
            res.send(err);
        else {

            var oldTitle = job.title;
            var newTitle = req.body.title;

            job.save(function (err) {
                if (err)
                    res.send(err);
                else
                    job.title = newTitle;
                    res.json({updatedTitle: job.title});
            });
        }
    });
};

我正在使用 Web Storm API 测试工具以 JSON 字符串形式发送新标题。我发送的字符串如下所示:

{"title" : "Updated Title"}

我从 API 获得的响应如下所示,您可以看到标题显示为已更新标题。但是当我进入数据库时​​,它显示为原始标题,即测试。

{"updatedTitle":"Updated Title"}

我必须做什么才能将新标题保存到数据库中?如果您需要任何其他信息来帮助解决这个问题,请随时询问。

【问题讨论】:

    标签: javascript mongodb mongoose mean-stack


    【解决方案1】:

    尝试使用findByIdAndUpdate 方法。所以:

    router.updateJob = function (req,res) {
      Job.findByIdAndUpdate(req.params.id, req.body, {new:true}, function(err, doc) {
         if(err)
             return res.json(err);
         else
             return res.json(doc);
      });
    };
    

    【讨论】:

      【解决方案2】:

      实际上是 job.save(callback)。赋值应该在.save()之前完成

      router.updateJob = function (req, res) {
      
      Job.findById(req.params.id, function(err, job) {
          if (err)
              res.send(err);
          else {
              var newTitle = req.body.title;
      
              job.title = newTitle;
      
              job.save(function (err) {
                  if (err)
                      res.send(err);
                  else
                      res.json({updatedTitle: job.title});
              });
          }
       });
      };
      

      【讨论】:

        猜你喜欢
        • 2019-12-07
        • 1970-01-01
        • 2015-06-13
        • 1970-01-01
        • 1970-01-01
        • 2020-12-24
        • 2021-01-17
        • 2016-09-10
        • 1970-01-01
        相关资源
        最近更新 更多