如何将代理添加到Node/Express站点?

edt*_*edt 3 proxy json jsonp node.js express

我的网站在Node上运行并使用Express框架.

我的目标是从Yahoo Placefinder api收集数据.它不支持JSONP,所以我需要将我的JQuery.getJSON请求发送到我自己的代理.然后我的代理会向Placefinder api发送一个http请求,并回应响应.

如果我使用的是php而不是Node,我只需要创建一个新的php文件,其中包含对placefinder api的curl请求并回显响应.

但是,我正在使用Node,我不知道从哪里开始.

而且,我正在使用Express框架.

我的问题是:

  1. 代理在哪里适合Express框架?公用文件夹?

  2. 在哪里可以找到有关如何在Node中编码代理的一些信息?

  3. 我是否需要修改Rackspace云(ubuntu)服务器的配置才能实现此目的?

Bar*_*Rho 13

  1. 请参阅node-http-proxy.它应该比实现自己的代理更好.

  2. Express允许您在执行时添加中间件作为参数express.createServer().或者,您可以使用后添加它们.use(proxy).

  3. 我不这么认为.

举个例子(未经测试的代码):

var httpProxy = require('http-proxy'), express = require('express');
var yahooProxy = httpProxy.createServer(80, 'yahoo.com');
var app = express.createServer();
app.configure(function () {
    app.use('/yahoo', yahooProxy);
});

...
Run Code Online (Sandbox Code Playgroud)