Calling same request again in node express Calling same request again in node express express express

Calling same request again in node express


I would turn the auth controller from middleware into a promise. Then make fetch recursive.

routes.controller.js

module.exports.fetch = fetch;function fetch(req, res, next) {  var options = getSavedOptsFromRequest(req) || helpers.buildAPIRequestOptions(req);  request(options, function(err, response, body){    if(response.statusCode === 401) {      saveOptsToRequest(req, options)      authController.refreshToken(req)      .then(function authOk(){          fetch(req, res, next);      })      .catch(function authKo(){          res.status(500).send('something');      });    } else {      res.status(response.statusCode).send(body);    }  });};function saveOptsToRequest(req, options){    req.requestedOptions = options;}function getSavedOptsFromRequest(req){    return req.requestedOptions;}

authController

module.exports.refreshToken = function(req) {    var refreshTokenPromise = new Promise(function (resolve, reject){        var formData = {            grant_type: 'refresh_token',            refresh_token: req.session.refreshToken,            scope: 'PRODUCTION'            },            headers = {            'Authorization' : 'Basic ' + consts.CLIENT_KEY_SECRET_BASE64_DEV            };        request.post({url:consts.ACCESS_TOKEN_REQUEST_URL_DEV, form:formData, headers: headers, rejectUnauthorized: false}, function(err, response, body){            var responseBody = JSON.parse(body);            if (response.statusCode === 200) {            req.session.accessToken = responseBody.access_token;            req.session.refreshToken = responseBody.refresh_token;            resolve();            //How to recall the original request made from fetch controller function after this point?            } else {            console.log('SOMETHING ELSE HAPPENED!');            reject(new Error("Something!!!!"));            }        });    });    return refreshTokenPromise;};