如果问题的某些方面不清楚,我深表歉意,因为我是节点和 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)
知道为什么会发生这个错误吗?如果监听失败我应该关闭服务器吗?如果是的话我该怎么做?
谢谢你。
我的错。我很困惑,因为这个错误没有发生在我的 mac 上。答案就在错误本身。错误是在调用两次侦听方法时发生的。第二次调用是在其他模块中。
我正在将 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 运行时.退出错误