在findById方法中处理404状态

时间:2018-08-17 19:00:38

标签: node.js rest api express mongoose

我正在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
        });
    });

1 个答案:

答案 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发送给客户端。