Чтобы избежать проблем с AJAX в одном домене, я хочу, чтобы мой веб-сервер node.js /api/BLABLA
, например other_domain.com:3000/BLABLA
, перенаправлял все запросы с URL-адреса на другой сервер и возвращал пользователю то же, что и этот удаленный сервер, прозрачно.
Все остальные URL (кроме /api/*
) должны обслуживаться напрямую, без прокси.
Как мне добиться этого с помощью node.js + express.js? Можете ли вы привести простой пример кода?
(и веб-сервер, и удаленный 3000
сервер находятся под моим контролем, оба работают под управлением node.js с express.js)
До сих пор я нашел этот https://github.com/http-party/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
});
});
но ничего не возвращается на исходный веб-сервер (или конечному пользователю), так что не повезло.