как отправить код ошибки ответа в nodejs - PullRequest
2 голосов
/ 25 марта 2019

Я хотел бы знать, как отправить код ошибки в обещании в качестве ответа в nodejs.Ошибка в обещании Не отправлять ошибки в объекте ответа в NodeJS / Express

module.exports.providerData = function (reqUrl, query) {
  return new Promise(async function (resolve, reject) {
    try {
      var validUrl = checkValidParamters(reqUrl, query);
      if(validUrl != true){
       throw new Error('failed');
      }
      else{
        sendcountry = countryjson.filter(function (send) {
          return send.country_name == param_sendcountry;
        })
        var provider_sendcncode = sendcountry[0].country_code;
        var receive = countryjson.filter(function (pr) {
          return pr.country_name == param_receivecountry;
        })
        var valid = true;
        var valid_obj = { validstatus: valid};
        resolve(valid_obj);
      }
    }
    catch (err) {
     reject(err);
    }
  });

}

в app.js

router.get('/', function (req, res, next) {
  if (getcountries == null && getcurrencies == null && getproviders == null) {
            util.providerData(req.originalUrl, req.query).then(obj => {
              res.render("corridor.ejs");
            }).catch(err=>{
              res.status(401).send({ error : err.message });
            })
  }
  else {
    console.log('just return');
          util.providerData(req.originalUrl, req.query).then(obj => {
              res.render("corridor.ejs");
            }).catch(err=>{
              res.status(401).send({ error : err.message });
            })
  }
});

Мне нужно отловить ответ об ошибке res.status(401).send({ error : err.message });, если функция экспортавозвращение false / error

1 Ответ

0 голосов
/ 25 марта 2019

ваше обещание ничего не решает.Чтобы решить, вы просто верните свой ответ.

router.get('/', function (req, res, next) {
   if (getcountries == null && getcurrencies == null && getproviders == null) {
        return util.providerData(req.originalUrl, req.query).then(obj => {
          return res.render("corridor.ejs");
        }).catch(err=>{
          return res.status(401).send({ error : err.message });
        })
  }
    else {
       console.log('just return');
       return util.providerData(req.originalUrl, req.query).then(obj => {
          return res.render("corridor.ejs");
        }).catch(err=>{
          return res.status(401).send({ error : err.message });
        })
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...