0

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!")
};

1 Answer 1

1

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)
    );
};
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.