我的 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/