Je crée un projet et utilise Nodejs, Express pour le backend. Tout fonctionne bien, mais lorsque je modifie le fichier, NODEMON ne peut pas redémarrer le serveur en raison de l'erreur suivante:
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}!`));
paquet.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"
}
}
J'ai explicitement tuer le serveur du terminal à chaque fois, ce qui n'est pas la solution optimale. J'ai essayé plusieurs choses, mais aucune ne fonctionne. Même en a même trouvé un problème dans la page Nom de Nodemon Github, mais il ne pouvait y trouver rien.
J'ajoute également la sortie de lsof -i: 50, même si le serveur je ferme le serveur - nœud 31625 Rishav 20u IPv6 5300049 0T0 TCP *: 5000 (Écoutez
Votre port est utilisé ailleurs. Très probablement, vous avez oublié d'arrêter l'instance précédente du nœud avant d'en exploiter une nouvelle.
Vous pouvez essayer d'exécuter votre serveur sur un autre port comme 3000.
Si vous souhaitez toujours utiliser le même port, vous pouvez utiliser la commande suivante pour obtenir la liste de processus d'exécution sur ce port particulier:
lsof -i tcp:3000
Utilisez la commande suivante dans le terminal pour tuer ce port d'exécution
Sudo kill -9 $(lsof -i tcp: 3000 -t)
J'ai eu la même situation. Si vous utilisez le code Visual Studio, vérifiez vos terminaux. Vous pourriez avoir d'autres instances du terminal qui exécutent déjà votre serveur de nœuds.
Si vous travaillez sur un fichier> Enregistré IT>, a eu l'erreur d'essayer:
Refrédez le fichier que vous avez apporté des modifications une ou deux fois de plus et que le problème s'en va à chaque fois.
Enregistrez le fichier une fois:
Error: listen EADDRINUSE: address already in use :::5000
...
[nodemon] app crashed - waiting for file changes before starting...
Enregistrez le fichier à une heure secondaire (sans modifier) [Commande] + S
[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
Server is running on port: 5000