gpt4 book ai didi

node.js - 使用 nodejs 代理

转载 作者:IT老高 更新时间:2023-10-28 23:25:55 29 4
gpt4 key购买 nike

我针对 api 开发了一个 webapp。由于 api 没有在我的本地系统上运行,我需要代理请求,所以我不会在跨域问题中运行。有没有一种简单的方法可以做到这一点,所以我的 index.html 将从本地和所有其他 GET、POST、PUT、DELETE 请求发送到 xyz.net/apiEndPoint。

编辑:

这是我的第一个解决方案,但没有用

var express = require('express'),
app = express.createServer(),
httpProxy = require('http-proxy');


app.use(express.bodyParser());
app.listen(process.env.PORT || 1235);

var proxy = new httpProxy.RoutingProxy();

app.get('/', function(req, res) {
res.sendfile(__dirname + '/index.html');
});
app.get('/js/*', function(req, res) {
res.sendfile(__dirname + req.url);
});
app.get('/css/*', function(req, res) {
res.sendfile(__dirname + req.url);
});

app.all('/*', function(req, res) {
proxy.proxyRequest(req, res, {
host: 'http://apiUrl',
port: 80
});

});

它将提供索引、js、css 文件,但不会将其余文件路由到外部 api。这是我收到的错误消息:

An error has occurred: {"stack":"Error: ENOTFOUND, Domain name not found\n    at IOWatcher.callback (dns.js:74:15)","message":"ENOTFOUND, Domain name not found","errno":4,"code":"ENOTFOUND"}

最佳答案

看看readme for http-proxy .它有一个如何调用 proxyRequest 的示例:

proxy.proxyRequest(req, res, {
host: 'localhost',
port: 9000
});

根据错误消息,听起来您将虚假域名传递给 proxyRequest 方法。

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

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