Node.js expressapi,为什么会出现错误:listen EADDRINUSE::5000

Node.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

我正在使用以下代码创建一个简单的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').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。我试试另一个端口