Node.js 中的设置请求 headers

Setting request headers in Node.js

我一直在与 node.js 合作设置代理服务器,该服务器将处理传入的客户端请求并验证它们是否具有正确的证书以连接到服务器。

我想要做的是能够将客户端的证书添加到他们的 header 以制作一个用户名,我将把它传递给服务器。

function (req, res) {

//Here is the client certificate in a variable 
var clientCertificate = req.socket.getPeerCertificate();

// Proxy a web request
return this.handle_proxy('web', req, res);

};

我想做的是:req.setHeader('foo','foo')

我知道 proxy.on('proxyReq) 存在,但是代码设置的方式,我需要能够使用 req 参数。

有办法吗?

如果我需要澄清我的问题,请告诉我。

您可以使用原始请求中提供的 headers 加上您希望使用 http.request 的任何额外 headers 来制作您自己的 http 请求。只需接收原始请求,将 headers 复制到新请求 headers 中,添加新的 headers 并发送新请求。

var data = [];
var options = {
  hostname: 'www.google.com',
  port: 80,
  path: '/upload',
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': postData.length
  }
};
var req = http.request(options, function(res) {

  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    data.push(chunk);
  });
  res.on('end', function() {
    console.log(data.join(""));

    //send the response to your original request

  });
});

req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});

// Set headers here i.e. req.setHeader('Content-Type', originalReq.getHeader('Content-Type'));

// write data to request body

req.write(/*original request data goes here*/);
req.end();