async function checkToken(token) {
const result = await superagent
.post(`${config.serviceUrl}/check_token`)
.send({token});
return result.body;
}
Default options if this call will return 401 throws an Exception, which is not what i expect. API i call is using HTTP status messages also as body to give information back and i just need the body part.
Response with http status 401 is
{
"data": null,
"error": {
"code": "INVALID_TOKEN",
"message": "Token is not valid"
}
}
And currently, to get this, I need to wrap all superagent calls with try...catch
async function checkToken(token) {
let result = null;
try {
result = await superagent
.post(`${config.serviceUrl}/check_token`)
.send({token});
} catch (e) {
result = e.response;
}
return result.body;
}
Any way to have the 1st sample working and returning JSON w/o looking at HTTP status?
Superagent by default treats every 4xx and 5xx response as error. You can however tell it, which responses you consider as error, by using .ok.
Sample example from documentation (https://visionmedia.github.io/superagent/#error-handling),
request.get('/404')
.ok(res => res.status < 500)
.then(response => {
// reads 404 page as a successful response
})
If the function inside the .ok, returns true then it will not be considered as error case.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With