我正在node.js(express.js +猫鼬)上创建RESTful API。 我有具有_id和标题的猫鼬模型。
当我处理通过_id查找特定对象的GET请求时,我使用findById方法,并且我想知道如果请求的ID错误,该如何处理。换句话说,问题是“如何处理findById方法的404状态”。
我已经尝试过类似的方法,但是没有用:
Blog.findById(id)
.select("_id title")
.exec()
.then(result => {
if (result) {
res.status(200).json({
article: result
});
} else {
res.status(404).json({
message: 'Article was not found'
});
}
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
答案 0 :(得分:0)
Model.findById
将返回null,因此您只需在所有代码之前的.then()
内放置if子句
.then(result => {
if(!result) return res.status(404).send('No result found');
// rest of your code here
这会将404发送给客户端。