Я использую linux mint 19.02
. Написал простой сервер.
const http = require('http');
const express = require('express');
const dotenv = require('dotenv').config();
const app = express();
const server = http.createServer(app);
const port = process.env.PORT // 8081;
app.get('/', (req, res) => {
res.send('Hello world!!!');
});
Вот мой файл package.json.
{
"name": "matel",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node src/index.js",
"dev": "nodemon src/index.js"
},
...
"license": "ISC",
"dependencies": {
"dotenv": "^8.2.0",
"express": "^4.17.1",
"nodemon": "^1.19.4"
}
}
Когда я запускаю сервер с помощью команды npm run dev, я получаю сообщение об ошибке. И, нажав на ссылку http://localhost:8081/
в браузере, я также получаю ошибку (логическую).
events.js: 187 throw er;// Необработанное событие 'error' ^
Ошибка: прослушивание EADDRINUSE: адрес уже используется ::: 8081 в Server.setupListenHandle [как _listen2] (net.js: 1300: 14) в listenInCluster (net.js): 1348: 12) в Server.listen (net.js: 1436: 7) в Object. (/home/user/projects/matel/src/index.js:13:8) в Module._compile (внутренний / modules / cjs / loader.js: 956: 30) в Object.Module._extensions..js (внутренний/modules/cjs/loader.js:973:10) в Module.load (внутренний / modules / cjs / loader.js: 812: 32) в Function.Module._load (внутренний / modules / cjs / loader.js: 724: 14) в Function.Module.runMain (внутренняя / modules / cjs / loader.js: 1025: 10) во внутреннем / main / run_main_module.js: 17: 11 Произошло событие «ошибка» на экземпляре сервера в: at emitErrorNT (net.js: 1327: 8) at processTicksAndRejected (internal / process / task_queues.js: 80: 21) {code: 'EADDRINUSE', errno: 'EADDRINUSE', syscall: 'listen', address: '::', port:8081}
Но когда я нажимаю сохранить ctrl + s
файл ключа, все работает нормально. И, нажав на ссылку http://localhost:8081
/ в браузере, я получаю Hello world!!!
, когда я снова нажимаю комбинацию клавиш ctrl + s
, я снова получаю ошибку. И так каждый второй раз.
Я запускаю команду fuser -k 8081/tcp
, после чего сервер запускается без ошибок, но когда я сохраняю файл, я получаю сообщение об ошибке, при следующем сохранении сервера он запускаетсяработает. И так каждый второй раз.
В чем может быть причина того, что сервер может вести себя так? В чем моя ошибка?