问题很简单。我想使用Node.js服务器作为代理来记录,验证和转发HTTP查询到后端HTTP服务器(PUT,GET和DELETE请求)。
我应该为此目的使用哪个库?我恐怕找不到一个。
答案 0 :(得分:134)
NodeJS支持http.request作为标准模块: http://nodejs.org/docs/v0.4.11/api/http.html#http.request
var http = require('http');
var options = {
host: 'example.com',
port: 80,
path: '/foo.html'
};
http.get(options, function(resp){
resp.on('data', function(chunk){
//do something with chunk
});
}).on("error", function(e){
console.log("Got error: " + e.message);
});
答案 1 :(得分:7)
我会将node-http-proxy和express结合起来。
node-http-proxy将通过RoutingProxy
支持您的node.js Web服务器内的代理(请参阅另一个http服务器中名为代理请求的示例)。
在自定义服务器逻辑中,您可以使用express进行身份验证。请参阅auth sample here for an example。
结合这两个例子可以给你你想要的东西。
答案 2 :(得分:5)
您可以使用内置的http
模块执行http.request()
。
但是,如果您想简化API,可以使用superagent
等模块答案 3 :(得分:1)
node-http-proxy是一个很好的解决方案,正如@hross上面提到的那样。如果你没有使用节点,我们使用NGINX做同样的事情。它对节点非常有效。我们使用它来处理SSL请求,然后再将它们转发到节点。它还可以处理缓存和转发路由。耶!
答案 4 :(得分:0)
您可以使用node.js http模块来执行此操作。您可以查看Node.js HTTP上的文档。
您还需要将查询字符串传递给其他HTTP Server。你应该在ServerRequest.url中拥有它。
获得这些信息后,您可以在http.request()