Чтобы избежать тех же проблем -домена 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
});
});
, но исходному веб-серверу (или конечному пользователю )ничего не возвращается, так что не повезло.