问题很简单。我想使用Node.js服务器作为代理来记录,认证HTTP查询并将其转发到后端HTTP服务器(PUT,GET和DELETE请求)。
我应该为此使用哪个库?恐怕找不到。
Answers:
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);
});
request
npm模块。
您可以使用内置http
模块执行http.request()
。
但是,如果您想简化API,则可以使用诸如superagent之类的模块
正如上面@hross所建议的那样,node-http-proxy是一个很好的解决方案。如果您对使用节点没有犹豫,可以使用NGINX来做同样的事情。它与node配合得很好。例如,我们使用它来处理SSL请求,然后再将其转发到节点。它还可以处理缓存和转发路由。好极了!
您可以使用node.js http模块来执行此操作。您可以在Node.js HTTP上查看文档。
您还需要将查询字符串传递给其他HTTP Server。您应该在ServerRequest.url中拥有它。
掌握这些信息后,您可以在后端HTTP服务器和端口中传递您将在 http.request()
resp.setEncoding('utf8');
(或使用任何编码)以utf8字符串形式获取数据。如果我没看错的话,否则将获得Buffer对象,并且如果将多字节字符拆分为两个块,可能会遇到多字节字符的麻烦。(只是调试了一段时间的相关问题)