Node.js expressapi,为什么会出现错误:listen EADDRINUSE::5000
我正在使用以下代码创建一个简单的express apiNode.js expressapi,为什么会出现错误:listen EADDRINUSE::5000,node.js,api,express,Node.js,Api,Express,我正在使用以下代码创建一个简单的express api //server.js const express = require('express'); const mongoose = require('mongoose'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.json()); const db = require('./config/keys').mon
//server.js
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
const db = require('./config/keys').mongoURI;
mongoose
.connect(db, { useNewUrlParser: true })
.then(() => console.log('db connected'))
.catch(err => console.error(err))
const port = process.env.PORT || 5000;
app.listen(port, () => console.log('server connected'))
//config/keys.js
module.exports = {
mongoURI: 'mongodb://db address'
};
当我运行它或对文件进行更改时,总是会出现错误
Error: listen EADDRINUSE :::5000
at Server.setupListenHandle [as _listen2] (net.js:1327:14)
at listenInCluster (net.js:1375:12)
at Server.listen (net.js:1462:7)
at Function.listen (/Users/user/Desktop/mern-2/node_modules/express/lib/application.js:618:24)
at Object.<anonymous> (/Users/user/Desktop/mern-2/server.js:18:5)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
Emitted 'error' event at:
at emitErrorNT (net.js:1354:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
at Function.Module.runMain (internal/modules/cjs/loader.js:746:11)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
错误:侦听EADDRINUSE::5000
在Server.setupListenHandle[as _listen2](net.js:1327:14)
在ListeniCluster(net.js:1375:12)
在Server.listen(net.js:1462:7)
在Function.listen(/Users/user/Desktop/mern-2/node_modules/express/lib/application.js:618:24)
反对。(/Users/user/Desktop/mern-2/server.js:18:5)
at模块编译(内部/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:713:10)
at Module.load(内部/modules/cjs/loader.js:612:32)
在tryModuleLoad(内部/modules/cjs/loader.js:551:12)
at Function.Module._load(内部/modules/cjs/loader.js:543:3)
位于Function.Module.runMain(内部/modules/cjs/loader.js:744:10)
启动时(内部/bootstrap/node.js:238:19)
在bootstrapNodeJSCore(internal/bootstrap/node.js:572:3)
在以下位置发出“错误”事件:
在emitErrorNT(net.js:1354:8)
在进程中。_tick回调(内部/process/next_tick.js:63:19)
位于Function.Module.runMain(internal/modules/cjs/loader.js:746:11)
启动时(内部/bootstrap/node.js:238:19)
在bootstrapNodeJSCore(internal/bootstrap/node.js:572:3)
我可以通过运行lsof-I:5000
然后kill
返回的节点来修复此问题
为什么会出现此错误,以及是否有方法停止此错误错误
错误:listen EADDRINUSE::5000
是自描述性的
看起来另一个应用程序正在侦听端口5000
,或者同一应用程序的另一个实例已在系统中运行
您终止进程的解决方案是有效的,因为您终止了正在侦听端口5000的进程
从给出的信息中,无法立即清楚它是您自己应用程序的另一个实例,还是使用端口5000的另一个应用程序
如果它是另一个应用程序(你可以通过查看lsof-i-n-p来了解),你应该使用另一个端口
如果它是您自己应用程序的另一个实例,请确保在编辑之前终止正在运行的实例(Ctrl+C
)
也许你可以使用我确信我没有任何其他运行的东西会在该端口上侦听。我在实际应用程序中使用nodemon。我试试另一个端口