0
我如何使用Node.js建立一个web应用程序,我需要代理某些路由传送给另一Node.js的(表达)服务器Node.js的HTTP代理如何将信息传递给目标服务器
我有以下代码
var express = require('express'),
http=require('http'),
httpProxy = require('http-proxy'),
proxy = new httpProxy.RoutingProxy();
var server = express();
server.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
server.use(express.logger());
server.use(express.cookieParser());
server.use(express.query());
server.use(express.session({secret:"secret-key", maxAge:10*60*1000}));
server.use(routeRequest);
var routeRequest = function (req, res, next) {
req.url=req.url.substring(1);
if (req.url.indexOf("client")==0) {
proxyToClientServer(9001,req,res)
}else{
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end();
}
}
var proxyToClientServer=function(port, req, res){
req.headers["data_context"]='customer_details';
proxy.proxyRequest(req, res, {
host: 'localhost',
port: port,
headers:req.headers
})
}
server.listen(8000);
我的问题是请求被正确地路由,但是我添加的数据范围内(自定义标题)从在目标服务器的请求删除
有人可以请指教如何传递更多信息正在代理服务器
你的代码看起来很好(我做了一个小测试,头部正确传递)。尝试添加一些调试代码:'proxy.on('start',function(r){console.log('proxy start',r.headers)});'(这将打印带有代理请求的头文件) 。 – robertklep 2013-05-05 06:51:40