0

我们正在尝试使用 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);
  });
4

1 回答 1

0

找到了解决方案。

我在 .gitignore中忽略了 node_module上传文件夹

克隆后我忘了添加文件夹。所以,它显示代理错误。

添加上传文件夹后,错误已解决。

于 2021-07-23T14:58:10.400 回答