我正在使用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; //未处理的“错误”事件^
错误:监听EADDRINUSE:Server.setupListenHandle处已经使用的地址::: 8081 [作为_listen2](net.js:1300:14)处于Server.listen(net的listenInCluster(net.js:1348:12) .js:1436:7)。 (/home/user/projects/matel/src/index.js:13:8)在Object.Module._extensions..js(内部)在Module._compile(内部/modules/cjs/loader.js:956:30) /modules/cjs/loader.js:973:10)在Module.load(internal / modules / cjs / loader.js:812:32)在Function.Module._load(internal / modules / cjs / loader.js:724) :14)在Function.Module.runmain(internal / modules / cjs / loader.js:1025:10)在internal / main / run_main_module.js:17:11在Server实例上在'emitErrorNT(net .js:1327:8)在processTicksAndRejections(内部/进程/task_queues.js:80:21){代码:'EADDRINUSE',errno:'EADDRINUSE',syscall:'listen',address:'::',port: 8081}
但是当我单击保存ctrl + s
密钥文件时,一切正常。通过单击浏览器中的链接http://localhost:8081
/,我得到Hello world!!!
,再次按组合键ctrl + s
时,我再次收到错误消息。所以每隔第二次。
我运行了fuser -k 8081/tcp
命令,此后服务器无错误启动,但是保存文件时出现错误,下次保存服务器时它将开始工作。所以每隔第二次。
服务器可能会以这种方式运行是什么原因?我怎么了?