我正在创建一个项目,并使用nodejs,表示后端。一切正常,但是当我在文件中进行任何更改时,由于以下错误,nodemon无法重新启动服务器:
Error: listen EADDRINUSE: address already in use :::5000
index.js:
const express = require("express");
const morgan = require("morgan");
const mongoose = require("mongoose");
const cookieParser = require("cookie-parser");
const session = require("express-session");
const FileStore = require("session-file-store")(session);
const dotenv = require("dotenv");
var passport = require("passport");
dotenv.config();
const PORT = process.env.PORT || 5000;
const app = express();
.....
app.listen(PORT, () => console.log(`Server listening on port ${PORT}!`));
package.json
{
"name": "chat-app-backend",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node index.js",
"dev": "nodemon --ignore 'sessions/' index.js"
},
"dependencies": {
"bcryptjs": "^2.4.3",
"cookie-parser": "^1.4.5",
"cors": "^2.8.5",
"debug": "~2.6.9",
"dotenv": "^8.2.0",
"express": "~4.16.0",
"express-session": "^1.17.0",
"http-errors": "~1.6.2",
"jade": "~1.11.0",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.9.4",
"morgan": "~1.9.0",
"passport": "^0.4.1",
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0",
"passport-local-mongoose": "^6.0.1",
"session-file-store": "^1.4.0",
"uuid": "^7.0.2"
},
"devDependencies": {
"nodemon": "^2.0.2"
}
}
我必须每次都从终端显式终止服务器,这不是最佳解决方案。我尝试了几件事,但没有任何效果。甚至在nodemon GitHub问题页面上发现了一些问题,但我也找不到任何东西。
即使服务器正在关闭服务器,我也要添加lsof -i:5000的输出-节点31625 rishav 20u IPv6 5300049 0t0 TCP *:5000(LISTEN)
您的端口在其他地方使用。您很可能忘记了在运行新实例之前停止节点的先前实例。
您可以尝试在其他端口(例如3000)上运行服务器。
如果仍要使用相同的端口,则可以使用以下命令来获取该特定端口上正在运行的进程的列表:
lsof -i tcp:3000
在终端中使用以下命令杀死正在运行的端口
sudo kill -9 $(lsof -i tcp: 3000 -t)