我正在为node.js开发一个Connect中间件,需要为传入请求添加HTTP标头。
这样的事似乎有效:
function authorize_request(req, res, next) {
//...
req.headers['remote-user'] = user;
next();
}
问题是请求是http.IncomingMessage
的实例,headers属性是documented to be read only:
这是一种为请求添加标头的允许方式,还是在某些情况下会失败?有没有更好的办法?
答案 0 :(得分:5)
如果您需要将一些内部信息传递给下一个中间件,只需使用对象而不是实际的标头 修改标题并不是一个好习惯,因为其他模块可以依赖它,而且会搞砸它们。
function authorize(req, res, next) {
// ...
req.data = req.data || { };
req.data.remoteUser = user;
next();
}