node.js - Nodejs Mongodb : findByIdAndUpdate not returning correct error

标签 node.js mongodb

我的 put 请求在应该返回错误时返回成功。我的 MongoDb 中甚至还没有 User 集合(因此也没有有效的 id)。但是当我进行此调用时,它会返回成功。为什么 findByIdAndUpdate 没有返回任何错误?

    app.put(path, (req, res) => {
        User.findByIdAndUpdate(req.body.id, req.body, {}, (err, doc) => {
            if (err) return res.status(400).send(err);
            res.status(200).send({ response: 'success' });
        })
    });

最佳答案

试试这个:

app.put(path, (req, res) => {
  User.findByIdAndUpdate(req.body.id, req.body, {}, (err, doc) => {
    if (err) {
      return res.status(400).send(err);
    } else {
        if(doc){
            return res.status(200).send({ response: 'success' });
        } else {
            return res.status(400).send({response:'false',message:'Not Found!'});
        }
    }
  });
});

默认情况下,当没有找到匹配的文档时, Mongoose 返回null,我们需要对这个null值做一些事情。

关于node.js - Nodejs Mongodb : findByIdAndUpdate not returning correct error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52814213/

相关文章:

node.js - 使用 connect-mongo 和 mongoose 将 session 存储在 mongodb 中

javascript - 如何在 Javascript 中动态更改 JSON 键(包括其子键)?

node.js - 使用 docker 镜像的 Azure Linux 应用服务中的 Mongo 连接错误

node.js - 无法安装grpc npm-package

node.js - Node jS ETIMEDOUT调用api时

javascript - Node.js 和 javascript 解释器有什么不同?

javascript - 未捕获的ReferenceError : require not defined (electron)

javascript - Node.js 最简单的代码不起作用

mongodb - 将 Mongodb 卷挂载到 Azure Web App for Containers 中的 Azure 文件

java - 如何通过键名从 mongoDB 中检索值?