Nodemon在尝试重新启动EEADINUSE错误之前未终止节点

lmvvr0a8  于 2023-03-01  发布在  Node.js
关注(0)|答案(1)|浏览(126)

这是我的第一个nodeiderjs服务器。我已经创建了serveriderjs并且它正在运行。我安装了nodemon并且让它运行,我也安装了forever并且让它们一起运行。
每次我修改代码并且nodemon运行时,它都会得到以下命令:错误。
我已经做了
lsof-i传输控制协议:3000
然后我得到
节点13837 p*********m 19u IPv6 161703311 0t0 TCP *:hbci(侦听)
所以我用-kill-9PID杀死这个PID
然而,它只是再次启动,我得到的错误一遍又一遍。
我做错了什么
我只想:

  • 更改代码时没有重新启动的demon
  • 监视终端的API响应
  • 永远地跑下去。

编辑:

  • 我已经永远卸载,只是运行nodemon。
  • 如果我杀死端口,它会保持关闭状态,但是如果我对代码进行更改,我会再次得到EEADINUSE错误。

我想我已经发现的是nodemon在重启服务之前并没有杀死它。
我发现了一个论坛帖子,其中建议:
nodemon qudaserver.js--信号SIGTERM
然而这也行不通

如果有任何其他建议,我们将不胜感激。
我的package.json代码:

{
  "name": "qudaapi",
  "version": "1.0.0",
  "description": "NodeJSAPI",
  "main": "qudaserver.js",
  "scripts": {},
  "author": "GAngel",
  "license": "ISC",
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "jsonwebtoken": "^8.5.1",
    "morgan": "^1.10.0",
    "mysql": "^2.18.1"
  }
}

我的qudaserver.js代码:

const http = require('http');
const app = require('./app');

const port = process.env.port || 3000;
const server = http.createServer(app);

server.listen(port);
csga3l58

csga3l581#

将其添加到package.json文件dev : "kill -9 $(lsof -i :3000) &>/dev/null | exit 0 nodemon server.js"的scripts部分,这样当您保存时,它会显式终止端口3000上的进程并重新启动。
我希望这是有帮助的。

相关问题