【问题标题】:How to set status code to 404 whenever a promise is rejected拒绝承诺时如何将状态码设置为 404
【发布时间】:2020-11-13 03:46:41
【问题描述】:

我正在通过使用 Promise 并链接它们来验证登录功能。当用户输入无效密码时,拒绝数据或解决它。最后,我通过链接这些方法来验证用户是否成功登录。

 let verifyData = (req, res) => {
    return new Promise((resolve, reject) => {
      if (req.body.name) {
        userModel.findOne({ name: req.body.name }).exec((err, result) => {
          if (result) {
            resolve(result);
          } else {
            reject(err);
          }
        });
      } else {
        let apiResponse = response.generate(
          false,
          null,
          404,
          "Mandatory fields missing, Please provide your userId and password"
        );

        reject(apiResponse);
      }
    });
  };

有什么方法可以在数据被拒绝时将状态代码发送为 404? 这导致了一个问题,因为目前我收到 200 个拒绝数据的状态代码

  verifyData(req, res).then(validatePassword).then((result) => {res.send(result);})
    .catch((err) => {
      res.send(err);
    });

【问题讨论】:

    标签: javascript node.js express promise routes


    【解决方案1】:

    见:https://expressjs.com/en/api.html#res.status

      verifyData(req, res).then(validatePassword).then((result) => {res.send(result);})
        .catch((err) => {
          const status = err.STATUS_PROP; // get status from apiResponse
          // or
          const status = 400
    
          res.status(status).send(err);
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-12
      • 2013-06-22
      • 2018-06-10
      • 2018-02-11
      • 2021-11-02
      • 2017-10-25
      • 2019-11-25
      • 1970-01-01
      相关资源
      最近更新 更多