NODE-端口上已经有其他东西在运行

时间:2019-02-15 16:35:00

标签: node.js reactjs

我有一个后端带有节点的应用程序,而前端则有反应。我有一个在服务器package.json上同时运行的npm开发脚本,如下所示:

"server": "nodemon server.js",
"client": "npm start --prefix client",
"watch:sass": "npm run watch:sass --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\" \"npm run watch:sass\""

在我准备好进行部署并将react-scripts build运行在客户端文件夹package.json下之前,这一直很好。

我的服务器在端口3000上侦听,并且我使用类似"proxy": "http://localhost:8000"的代理设置了我的react-sripts。

在我进行响应构建之后,每当我尝试运行npm run dev时,都会出现以下错误:Something is already running on port 3000

是的,我尝试使用sudo lsof -i:3000列出并查看在该端口上运行的所有进程,是的,我尝试了killall node的进程。

我尝试更改app.listen()上的端口或将react-scripts start更改为PORT=3001 react-scripts start YES 摆脱了最初的问题,但是问题是我似乎无法让我的前台与后面进行交流,并且我所有的API调用都无法正常工作。

Proxy error: Could not proxy request /api/users/login from localhost:3000 to http://localhost:8000.
See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNREFUSED).

有什么想法吗?谢谢。

3 个答案:

答案 0 :(得分:0)

使用该端口应该还有另一个节点进程仍在运行,请尝试在终端中执行pkill node,然后再次启动服务器

答案 1 :(得分:0)

对不起,我很傻。我将代理设置为端口8000,但应将app.listen()上的端口设置为3000,将其保留为3000!

答案 2 :(得分:0)

This是一种方便的工具,可以杀死在节点端口上运行的内容:

npm install --global kill-port

然后

kill-port --port 8080