尝试先前的建议后,通过Heroku托管Discord Bot,EADDRINUSE错误重复

时间:2020-07-28 21:44:37

标签: node.js heroku discord bots

我正在尝试通过Heroku首次托管Discord机器人(也是我第一次使用该网站)。它在本地运行得很好,但是当我上线后,我开始收到有关$ PORT的错误。当我查找时,我发现我需要监听服务器以使端口保持连接状态,但是我所做的每一次尝试都会导致EADDRINUSE错误。我已经查看了这些先前的答案herehere并尝试了许多示例,删除了模块并重新安装了无数次,在启动之前结束了node.exe进程,但是我仍然遇到错误。我一定想念一些东西,但我想不通,我觉得自己只是在盘旋而已。任何帮助将不胜感激。

错误报告:

/signup

package.json

2020-07-28T21:24:01.605923+00:00 heroku[web.1]: Starting process with command `npm start`
2020-07-28T21:24:03.399990+00:00 app[web.1]: 
2020-07-28T21:24:03.400006+00:00 app[web.1]: > bot@1.0.0 start /app
2020-07-28T21:24:03.400006+00:00 app[web.1]: > node bot.js
2020-07-28T21:24:03.400006+00:00 app[web.1]: 
2020-07-28T21:24:04.323323+00:00 app[web.1]: Ready!
2020-07-28T21:24:06.981374+00:00 app[web.1]: Listening on 50667
2020-07-28T21:24:07.141720+00:00 app[web.1]: events.js:292
2020-07-28T21:24:07.141721+00:00 app[web.1]:       throw er; // Unhandled 'error' event
2020-07-28T21:24:07.141722+00:00 app[web.1]:       ^
2020-07-28T21:24:07.141722+00:00 app[web.1]: 
2020-07-28T21:24:07.141724+00:00 app[web.1]: Error: listen EADDRINUSE: address already in use :::50667
2020-07-28T21:24:07.141725+00:00 app[web.1]:     at Server.setupListenHandle [as _listen2] (net.js:1313:16)
2020-07-28T21:24:07.141725+00:00 app[web.1]:     at listenInCluster (net.js:1361:12)
2020-07-28T21:24:07.141726+00:00 app[web.1]:     at Server.listen (net.js:1447:7)
2020-07-28T21:24:07.141727+00:00 app[web.1]:     at Function.listen (/app/node_modules/express/lib/application.js:618:24)
2020-07-28T21:24:07.141727+00:00 app[web.1]:     at Client.<anonymous> (/app/bot.js:21075:4)
2020-07-28T21:24:07.141727+00:00 app[web.1]:     at Client.emit (events.js:315:20)
2020-07-28T21:24:07.141743+00:00 app[web.1]:     at MessageCreateAction.handle (/app/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
2020-07-28T21:24:07.141745+00:00 app[web.1]:     at Object.module.exports [as MESSAGE_CREATE] (/app/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
2020-07-28T21:24:07.141752+00:00 app[web.1]:     at WebSocketManager.handlePacket (/app/node_modules/discord.js/src/client/websocket/WebSocketManager.js:386:31)
2020-07-28T21:24:07.141752+00:00 app[web.1]:     at WebSocketShard.onPacket (/app/node_modules/discord.js/src/client/websocket/WebSocketShard.js:436:22)
2020-07-28T21:24:07.141753+00:00 app[web.1]: Emitted 'error' event on Server instance at:
2020-07-28T21:24:07.141753+00:00 app[web.1]:     at emitErrorNT (net.js:1340:8)
2020-07-28T21:24:07.141753+00:00 app[web.1]:     at processTicksAndRejections (internal/process/task_queues.js:84:21) {
2020-07-28T21:24:07.141754+00:00 app[web.1]:   code: 'EADDRINUSE',
2020-07-28T21:24:07.141754+00:00 app[web.1]:   errno: 'EADDRINUSE',
2020-07-28T21:24:07.141755+00:00 app[web.1]:   syscall: 'listen',
2020-07-28T21:24:07.141755+00:00 app[web.1]:   address: '::',
2020-07-28T21:24:07.141756+00:00 app[web.1]:   port: 50667
2020-07-28T21:24:07.141756+00:00 app[web.1]: }
2020-07-28T21:24:07.154255+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-07-28T21:24:07.154464+00:00 app[web.1]: npm ERR! errno 1
2020-07-28T21:24:07.157313+00:00 app[web.1]: npm ERR! bot@1.0.0 start: `node bot.js`
2020-07-28T21:24:07.157445+00:00 app[web.1]: npm ERR! Exit status 1
2020-07-28T21:24:07.157646+00:00 app[web.1]: npm ERR! 
2020-07-28T21:24:07.157759+00:00 app[web.1]: npm ERR! Failed at the bot@1.0.0 start script.
2020-07-28T21:24:07.157832+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2020-07-28T21:24:07.169750+00:00 app[web.1]: 
2020-07-28T21:24:07.169882+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2020-07-28T21:24:07.169957+00:00 app[web.1]: npm ERR!     /app/.npm/_logs/2020-07-28T21_24_07_159Z-debug.log
2020-07-28T21:24:07.254000+00:00 heroku[web.1]: State changed from starting to crashed
2020-07-28T21:24:07.225012+00:00 heroku[web.1]: Process exited with status 1

当前代码(尽管我也尝试了许多不同的代码。)

{
  "name": "bot",
  "version": "1.0.0",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "discord.js": "^12.2.0",
    "exit-hook": "^2.2.0",
    "express": "^4.17.1",
    "http": "0.0.1-security",
    "webpack-dev-server": "^3.11.0"
  },
  "scripts": {
    "start": "node bot.js",
    "stop-win": "Taskkill /IM node.exe /F"
  },
  "main": "bot.js",
  "devDependencies": {},
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": ""
}

我知道我可能应该通过Heroku而不是Web方式将bot作为工作程序来运行,但是由于某些原因该选项对我不可用,并且我的Procfile没有执行任何操作。 我知道一定有我要忽略的东西。当我运行stop-win脚本时,即使我仅尝试运行一次代码,它也会杀死两个node.exe进程。 我已经看了太久了(几天!),并且一直绕圈走,我需要一些新鲜的眼睛和想法。请帮忙!

编辑: 感谢Tin Nguyen为我指示Procfile正确的方向!我能够使用this thread进行回显,因此可以运行的Procfile使其成为工作程序。这让我解决了所有问题。非常感谢!

1 个答案:

答案 0 :(得分:-1)

我认为该错误来自端口!看看错误,

Ready!
Listening on 50667
events.js:292
throw er; // Unhandled 'error' event
Error: listen EADDRINUSE: address already in use :::50667

它说“地址已在使用中”,请尝试对其进行更改,如果可以使用,请通知我!