【问题标题】:Error: listen EADDRINUSE :::8080 when no process is using 8080 port错误:在没有进程使用 8080 端口时侦听 EADDRINUSE :::8080
【发布时间】:2018-03-22 09:00:44
【问题描述】:

我已经使用 Node 2 年多了,以前从未见过这种情况。当我运行lsof -i tcp:8080 时,8080 端口实际上没有使用任何东西。我也试过killall -9 nodesudo fuser -k 8080/tcp 但还是一样的错误。

但是当我运行我的节点应用程序时,它会发生错误。不知道为什么会这样。有什么想法吗?

app.js

const app = new Koa()
const port = process.env.PORT || 8080
const dist = isProduction() ? __dirname + '/../views' : __dirname + '/views/'
const bpOption = {
    fields: 'body',
    IncomingForm: form
}

console.log("SIBAL")

app.keys = ['secret', 'key'];
require('./util/passport')

app
    .use(logger())
    .use(serve(dist))
    .use(session({}, app))
    .use(bodyParser(bpOption))
    .use(passport.initialize())
    .use(passport.session())
    .use(views(dist, { extension: 'pug'}))
    .use(routes())

let server = app.listen(port)

【问题讨论】:

  • 您的应用是否多次尝试绑定到端口 8080?一些显示问题的示例代码会很好。
  • @MikeC 我刚刚添加了代码,顺便说一句,我只是注意到我每次都收到错误,即使在其他端口中也是如此
  • 您正试图杀死 8080,但您的应用也期待 process.env.PORT 也许您有一个环境变量使其在另一个端口上运行?
  • @cinaroll45 这次我没有设置process.env.PORT。
  • @MikeCluck 您的评论令人大开眼界,正在努力解决类似的问题。谢谢!!

标签: javascript node.js ubuntu networking tcp


【解决方案1】:

你可以试试这个:

sudo kill $(sudo lsof -t -i:8080)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2021-05-28
    • 2017-10-06
    • 2015-09-20
    • 2017-05-05
    相关资源
    最近更新 更多