问题很简单。我想使用 Node.js 服务器作为代理来记录、验证和将 HTTP 查询转发到后端 HTTP 服务器(PUT、 GET 和 DELETE 请求)。
我该用哪个图书馆呢? 恐怕我找不到。
您可以使用 node.js http 模块来完成这项工作。
您还需要将查询字符串传递给另一个 HTTP 服务器。你应该把它放在 ServerRequest.url里。
一旦获得了这些信息,就可以传入后端 HTTP 服务器,并将 http.request()中提供的选项移植到其中
http.request()
我会结合 Node-http-xy 节点-代理和 快递。
Node-http-agent 将通过 RoutingProxy支持 node.js Web 服务器内的一个代理(参见名为 另一个 http 服务器中的代理请求的示例)。
RoutingProxy
在自定义服务器逻辑中,可以使用 Express 进行身份验证。
将这两个示例结合起来应该能够得到您想要的结果。
您可以使用内置的 http模块来执行 http.request()。
http
但是,如果你想简化的 API,你可以使用一个模块,如 超级经纪人
Node-http-xy 是一个很好的解决方案,正如上面@hross 所建议的那样。如果在使用节点时没有死机,那么我们使用 NGINX来做同样的事情。它与节点工作得非常好。例如,我们使用它在将 SSL 请求转发到节点之前处理它们。它还可以处理缓存和转发路由。耶!
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); });