我有一个后端带有节点的应用程序,而前端则有反应。我有一个在服务器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).
有什么想法吗?谢谢。
答案 0 :(得分:0)
使用该端口应该还有另一个节点进程仍在运行,请尝试在终端中执行pkill node
,然后再次启动服务器
答案 1 :(得分:0)
对不起,我很傻。我将代理设置为端口8000,但应将app.listen()上的端口设置为3000,将其保留为3000!
答案 2 :(得分:0)