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