首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >express,为什么我得到错误:听EADDRINUSE :5000

express,为什么我得到错误:听EADDRINUSE :5000
EN

Stack Overflow用户
提问于 2019-07-23 10:11:21
回答 1查看 167关注 0票数 0

我正在使用以下代码创建一个简单的快捷api

代码语言:javascript
复制
//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'
};

当我运行它或对文件进行更改时,我总是会得到一个错误。

代码语言:javascript
复制
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)

我可以通过运行lsof -i :5000来修复这个问题,然后运行返回的节点kill

为什么我会得到这个错误并且有什么方法来阻止它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-23 10:21:11

错误Error: listen EADDRINUSE :::5000是自描述的。

看起来另一个应用程序正在监听端口5000,或者您的同一个应用程序的另一个实例已经在系统中运行。

您的终止进程的解决方案是有效的,因为您在那里杀死了正在侦听端口5000的进程。

如果它是您自己的应用程序的另一个实例,或者它是否是使用端口5000的另一个应用程序,则不能立即从所给出的信息中清楚。

如果它是另一个应用程序(您可以通过查看lsof -i -n -P来了解它),那么您应该使用另一个端口。

如果它是您自己应用程序的另一个实例,请确保在编辑之前终止正在运行的实例(Ctrl + C)。

也许你可以使用诺曼德

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57161729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档