I would like to know how to send error code in promise as response in nodejs. Error in Promise Not sending any error in response object in 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);
}
});
}
in 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 });
})
}
});
I need to catch the error response res.status(401).send({ error : err.message });
if export function is returning false/error
your promise doesn't resolve anything. to resolve, you just simple return your response.
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 });
})
}
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.