NodeJs中间件设置标题

我想添加一个刷新令牌到中间件的头部,就像在这个问题的第一个答案中所看到的那样: 使用angular和express-jwt实现刷新令牌

后端 – 中间件:

jwt.verify(token, config.secret, function(err, decoded) { if (err) { res.status(401); return res.json({ success: false, message: 'Authentication failed' }); } else { var token_exp = new Date(decoded.exp * 1000); var date = new Date(); var difference = (token_exp.getTime() - date.getTime()) / 60000; if(difference < (config.expireTimeToken / 2 )){ var expires = config.expireTimeToken + 'm'; var token = jwt.refreshToken(decoded); res.setHeader('Authorization', 'Bearer ' + token); next(); }else{ req.decoded = decoded; next(); } } }); 

前端拦截器:

 module.exports = function ($injector) { return { request: function (config) { var CoreService = $injector.get('CoreService'); config.headers['x-access-token'] = CoreService.getToken(); return config; }, response: function(response) { var receivedToken = response.headers('authorization'); console.log(receivedToken); return response; } }; }; 

但是,每当我设置一个头,它不会被客户端的拦截器接收。 当我在我的npm控制台debuggingres.header时,设置标题'Authorization'在'_headers'而不是'headers'中。

我如何解决这个问题。

在快速中间件中,可以使用res.set(field, [value])res.header(field, [value]) (同一个函数的别名res.header(field, [value])来设置标题。 setHeader不是express方法,而是本地node.js,我认为这可能会导致问题。