gpt4 book ai didi

node.js - express.js 代理

转载 作者:IT老高 更新时间:2023-10-28 21:46:17 29 4
gpt4 key购买 nike

为了避免同域 AJAX 问题,我希望我的 node.js Web 服务器将所有请求从 URL /api/BLABLA 转发到另一台服务器,例如 other_domain.com:3000/BLABLA,并以透明方式向用户返回此远程服务器返回的相同内容。

所有其他 URL(除了 /api/*)将直接提供,没有代理。

如何使用 node.js + express.js 实现这一点?能举个简单的代码例子吗?

(web 服务器和远程 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
});
});

但是没有任何东西返回到原始网络服务器(或最终用户),所以没有运气。

最佳答案

request has been deprecated as of February 2020, I'll leave the answer below for historical reasons, but please consider moving to an alternative listed in this issue.

存档

我做了类似的事情,但我使用了 request而是:

var request = require('request');
app.get('/', function(req,res) {
//modify the url in any way you want
var newurl = 'http://google.com/';
request(newurl).pipe(res);
});

我希望这会有所帮助,我花了一段时间才意识到我可以做到这一点:)

关于node.js - express.js 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10435407/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com