Aynı etki alanı AJAX sorunlarını önlemek için, node.js web sunucumun URL'den gelen tüm istekleri /api/BLABLA
başka bir sunucuya iletmesini other_domain.com:3000/BLABLA
ve bu uzak sunucunun saydam olarak döndürdüğü şeyi kullanıcıya geri döndürmesini istiyorum.
Tüm diğer URL'ler (yanında /api/*
) doğrudan sunulmalıdır, proxy yapılmaz.
Bunu node.js + express.js ile nasıl başarabilirim? Basit bir kod örneği verebilir misiniz?
(hem web sunucusu hem de uzak 3000
sunucu kontrolüm altında, ikisi de express.js ile node.js çalıştırıyor)
Şimdiye kadar bu https://github.com/http-party/node-http-proxy'yi buldum , ancak belgeleri okumak beni daha akıllı hale getirmedi. İle bitirdim
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
});
});
ancak orijinal web sunucusuna (veya son kullanıcıya) hiçbir şey döndürülmez, bu yüzden şans olmaz.