Щоб уникнути проблем з 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/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
});
});
але нічого не повертається на початковий веб-сервер (або кінцевому користувачеві), тому не пощастить.