Reputation: 333
I want to catch the error from "revokeToken" function and return it as json response in the api.post . But I'm not getting how this to be done. Can anyone help me out with this? Is there any better way of wring it?
app.post('/api/logout', (req, res)=>{
var request = new Request(req);
var response = new Response(res);
var tokenArray = request.headers.authorization.split(" ");
var token = tokenArray[1];
var tokenObj = {
accessToken : token
}
let errmsg = '';
revokeToken(tokenObj, (obj)=>{
errmsg = obj;
});
res.json({
data: null,
result:{
isError: false,
status: 200,
errorMsg: errmsg
}
});
});
var revokeToken = function(token, callback) {
tokenModel.deleteOne({
accessToken: token.accessToken
}).exec((function(callback, err, results) {
var deleteSuccess = results && results.deletedCount === 1;
let result = '';
if (!deleteSuccess) {
return err;
}
else{
return err;
}
}).bind(null, callback));
callback("Token Deleted!")
};
Upvotes: 0
Views: 24
Reputation: 13284
You should be able to retrieve the error object by passing the msg
property as parameter to the callback
function.
Also, rename the exec
function callback to something other than callback
:
var revokeToken = function (token, callback) {
tokenModel
.deleteOne({
accessToken: token.accessToken,
})
.exec(
function (done, err, results) {
var deleteSuccess = results && results.deletedCount === 1;
let result = '';
if (!deleteSuccess) {
callback(err.msg);
return;
}
callback('Token Deleted!');
}.bind(null, callback)
);
};
Upvotes: 1