节点中的 Server.listen() 给出“错误 [ERR_SERVER_ALREADY_LISTEN]:Listen 方法已被调用多次而未关闭。”

问题描述 投票:0回答:2

如果问题的某些方面不清楚,我深表歉意,因为我是节点和 JavaScript 的新手。详情请询问

我有一个使用 socketio 连接到 firebase 的节点应用程序。当应用程序部署在heroku上时,我收到以下错误:

Error [ERR_SERVER_ALREADY_LISTEN]: Listen method has been called more than once without closing. 
Nov 01 19:57:38  app/web.1:     at Server.listen (net.js:1446:11) 
Nov 01 19:57:38  app/web.1:     at exports.default (/app/dist/server.js:8226:11) 
Nov 01 19:57:38  app/web.1:     at Object.<anonymous> (/app/dist/server.js:191:21) 
Nov 01 19:57:38  app/web.1:     at __webpack_require__ (/app/dist/server.js:20:30) 
Nov 01 19:57:38  app/web.1:     at Object.<anonymous> (/app/dist/server.js:47:19) 
Nov 01 19:57:38  app/web.1:     at __webpack_require__ (/app/dist/server.js:20:30) 
Nov 01 19:57:38  app/web.1:     at /app/dist/server.js:40:18 
Nov 01 19:57:38  app/web.1:     at Object.<anonymous> (/app/dist/server.js:43:10) 
Nov 01 19:57:38  app/web.1:     at Module._compile (module.js:641:30) 
Nov 01 19:57:38  app/web.1:     at Object.Module._extensions..js (module.js:652:10) 
Nov 01 19:57:38  app/web.1: /app/dist/server.js:212 
Nov 01 19:57:38  app/web.1:         throw error; 

错误的描述在此链接上:

https://nodejs.org/api/all.html#errors_err_server_already_listen

我的server.js上的监听代码如图:

const server = http.createServer(app).listen(port)

知道为什么会发生这个错误吗?如果监听失败我应该关闭服务器吗?如果是的话我该怎么做?

谢谢你。

node.js heroku socket.io forever
2个回答
3
投票

我的错。我很困惑,因为这个错误没有发生在我的 mac 上。答案就在错误本身。错误是在调用两次侦听方法时发生的。第二次调用是在其他模块中。


0
投票

我正在将 Node Express 部署到 Vercel,但查看日志后 api 上出现错误,应显示此错误 [服务器错误]

启动 Vercel 运行时时出现意外错误:错误 [ERR_SERVER_ALREADY_LISTEN]:Listen 方法已被调用多次而未关闭。 在新的 NodeError (节点:内部/错误:399:5) 在 Server.listen(节点:net:1827:11) 在 Bridge.listen (/var/task/___vc/__launcher.js:331:19) 在 AttachServer (/var/task/___vc/__launcher.js:32:18) 在 /var/task/___vc/__launcher.js:713:21 { 代码:'ERR_SERVER_ALREADY_LISTEN' } RequestId:f09716cd-3fd4-4b3b-97b1-8dd3e4095213 错误:运行时退出并出现错误:退出状态 1 运行时.退出错误

© www.soinside.com 2019 - 2024. All rights reserved.