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