快速获取单个文档不会跳转

Get single document in express doesn't jumps to catch

我有以下快递代码。如果我尝试获取一个 ID 不存在的文档,我将一无所获。问题是我得到 200 作为响应状态,但我没有收到 Failed 消息。代码每次都跳转到“then”。

const Mymodel = require('../model/Mymodel');

const Single = (req, res) => {
  const id = req.params.id;
  Mymodel.findById(id)
    .then(result => {
      res.send(result);
    })
    .catch(err => {
      console.log(err);
      res.status(404).send({"Failed": "Document not found"});
    });
}

您的查找查询响应为空,因此这不是错误。如果你发送 res.status(404).send({"Failed": "Document not found"});未找到的响应使用此。

const Mymodel = require('../model/Mymodel');

const Single = (req, res) => {
  const id = req.params.id;
  Mymodel.findById(id)
    .then(result => {
      if(result){
       res.send(result);
      }else{
       res.status(404).send({"Failed": "Document not found"});
      }
    })
    .catch(err => {
      console.log(err);
      res.status(404).send({"Failed": "Document not found"});
    });
}