首页 > 解决方案 > 在 nodejs 中为 server.listen() 重新使用相同的端口

问题描述

我正在运行 Ubuntu 18.04 并拥有 Express 4.16.3。每次运行服务器时,我都必须更改侦听端口。

我得到的错误信息是:

听 EADDRINUSE :::8080

服务器.js

import express from 'express';
const server = express();

server.get('/',(req,res)=>{
  res.send('Helo Express');
});

server.listen(8080, ()=>{
  console.info('Listening on port 8080');
});

有人可以解释为什么会发生这种情况吗?并提出可能的解决方法?

标签: node.jslinuxexpressport

解决方案


这只是解决您的问题的解决方法。你能尝试使用nodemon 吗?因为如果在您的代码中检测到任何更改,这将自动重新启动您的服务器(即,它会在文件更改时重新启动您的服务器)。

因此,您将使用以下命令运行您的服务器:

nodemon server.js

如果上述方法不起作用,请使用它

const port = 8080
function startServer() {

  server.listen(port, err => {
    if(err) {
        port++;
        startServer()
    } else {
       console.log('Server running on port:', port)
    }
  })
}

这将扫描一个空闲端口,然后在控制台上打印它。


推荐阅读