Прокси с помощью express.js

Чтобы избежать тех же проблем -домена AJAX, я хочу, чтобы мой веб-сервер node.js перенаправлял все запросы с URL-адреса /api/BLABLAна другой server, например other_domain.com:3000/BLABLA, и вернуть пользователю то же самое, что вернул этот удаленный сервер, прозрачно.

Все другие URL-адреса (, кроме /api/*), должны обслуживаться напрямую, без проксирования.

Как мне добиться этого с помощью node.js + express.js? Можете ли вы привести простой пример кода?

(и веб-сервер, и удаленный 3000сервер находятся под моим контролем, на обоих запущены node.js с express.js)


Пока я нашел этоhttps://github.com/nodejitsu/node-http-proxy/, но чтение документации не заставило меня любой мудрее. В итоге я получил

var proxy = new httpProxy.RoutingProxy();
app.all("/api/*", function(req, res) {
    console.log("old request url " + req.url)
    req.url = '/' + req.url.split('/').slice(2).join('/'); // remove the '/api' part
    console.log("new request url " + req.url)
    proxy.proxyRequest(req, res, {
        host: "other_domain.com",
        port: 3000
    });
});

, но исходному веб-серверу (или конечному пользователю )ничего не возвращается, так что не повезло.

147
задан user124114 10 August 2013 в 14:54
поделиться