ExpressJS:将标头附加到传入的请求对象

时间:2016-04-27 13:44:09

标签: node.js express

我正在尝试将附加标头附加到传入请求,但它似乎无法正常工作。

server.get('/', function md1(req, res, next) {
    req.setHeader('px-test-header', 1234); // Error - "req.setHeader is not a function"
    req.headers['px-test-header'] = 1234; // nothing happens
 }, function (req, res, next) {
    console.log(req.get('px-test-header')); // always undefined
}, handler);

我做错了什么?它甚至可能吗?

注意 - 我不想用其他参数修改请求对象。

2 个答案:

答案 0 :(得分:2)

setHeader是一个函数,用于响应类型的对象而不是来自documentation

的请求

但是如果您仍然想在请求中设置标题,那么您可以执行类似

的操作
app.get('/', function(req,res){
    req.headers.abc ='xyz'; 
    console.log(req);
});

req存储在req.headers中,因此您可以在此处为应用程序中间件添加自定义标头以供日后使用。

答案 1 :(得分:1)

您可以在路由前设置标头。 检查此代码

var router = express.Router();

router.use(function(req, res, next) {
   // set the header you wish to append
   req.headers('px-test-header', 1234);
   next();
});


router.get('/', function(req, res){
    console.log(req.headers)
});