如何解决将请求 localhost:3000/api/product 代理到 http://localhost:5000/ 时发生错误
我们正在尝试使用 Typescript、express 和 nextjs 创建一个简单的电子商务应用。
当我们向它发出请求时,它会抛出以下错误。
[HPM] 代理请求 localhost:3000/api/product 时出错 到 http://localhost:5000/ [ECONNREFUSED] (https://nodejs.org/api/errors.html#errors_common_system_errors)
我的朋友使用的是 Windows,代码可以在他的 PC 上运行,但不能在我的 Ubuntu 桌面上运行。
我尝试像下面那样终止端口。它也会终止端口,但这没有帮助。
$ sudo lsof -t -i:5000
6033
$sudo kill -9 6033
$sudo lsof -t -i:3000
6101
$sudo kill -9 6101
代理服务器正在监听 server.js 文件:
const express = require('express');
const next = require('next');
const { createProxyMiddleware } = require('http-proxy-middleware');
const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();
app
.prepare()
.then(() => {
const server = express();
// apply proxy in dev mode
if (dev) {
server.use(
'/api',createProxyMiddleware({
target: 'http://localhost:5000',changeOrigin: true,})
);
}
server.all('*',(req,res) => {
return handle(req,res);
});
server.listen(3000,(err) => {
if (err) throw err;
console.log('> Ready on http://localhost:5000');
});
})
.catch((err) => {
console.log('Error',err);
});
解决方法
找到解决方案。
我忽略了 .gitignore 中的 node_module 和 upload 文件夹
我在克隆后忘记添加文件夹了。所以,它显示代理错误。
在我添加上传文件夹后,错误得到解决。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。