node.js - Nodemon 在尝试重新启动 EEADINUSE 错误之前没有杀死节点
问题描述
这是我的第一个 node.js 服务器。我已经创建了 server.js 并且它正在运行。我安装了 nodemon 并让它运行,我也永远安装了它们并让它们一起运行。
每次我对代码进行更改并且 nodemon 运行时,它都会收到 EADDRINUSE: 错误。
我已经做好了
lsof -i tcp:3000
我得到
节点 13837 p*********m 19u IPv6 161703311 0t0 TCP *:hbci (LISTEN)
所以我使用 -kill - 9 PID 杀死这个 PID
但是它只是再次启动,我一遍又一遍地收到错误。
我究竟做错了什么 :(
我只是想:
- nodemon 在我更改代码时重新启动
- 观看终端以获取 api 响应
- 永远继续运行。
编辑:
- 从那以后,我已经永久卸载并只运行 nodemon。
- 如果我杀死端口,它会保持关闭状态,但是如果我更改代码,我会再次收到 EEADINUSE 错误。
我想我发现的是 nodemon 在重新启动之前没有杀死服务。
我发现了一个论坛帖子,它建议这样做:
nodemon qudaserver.js --signal 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);
解决方案
推荐阅读
- c++ - 没有原子的 C++ 线程安全
- c# - 如何在 C# 中测试内部调用公共实例方法的方法
- android-studio - Android现金:UnsatisfiedLinkError:dlopen失败:找不到符号“pthread_cond_clockwait”
- instagram - Instagram Business Discovery API 无效的 OAuth 访问令牌
- datetime - 如何解析 PRTG 使用的时间戳
- typescript - 使用 reduce() 和 Typescript 解析嵌套对象
- typescript - Angular - onfig.service.ts:11:1 - 错误 TS2532:对象可能是“未定义”
- php - Laravel 的对象集合导致关联数组而不是对象?
- java - JAVA8 可选和 Lambda
- php - 使用 Docker 将 PHP 项目从 Linux 迁移到 Windows?