繁体   English   中英

每当 promise 被拒绝时如何将状态码设置为 404

[英]How to set status code to 404 whenever a promise is rejected

我正在通过使用 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);
    });

见: 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);
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM