在Heroku上部署Node.js应用程序(discord.jd bot)会导致错误

时间:2020-08-10 10:23:54

标签: node.js heroku discord.js

我正在尝试在heroku上部署一个不和谐的bot。 工作大约1-2分钟,然后出现错误

2020-08-10T10:05:17.228802+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2020-08-10T10:05:17.246146+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-08-10T10:05:17.307500+00:00 heroku[web.1]: Process exited with status 137
2020-08-10T10:05:17.347445+00:00 heroku[web.1]: State changed from starting to crashed

(完整日志):

2020-08-10T10:04:19.372794+00:00 app[web.1]: 
2020-08-10T10:04:19.372804+00:00 app[web.1]: > arepee-bot@1.0.0 start /app
2020-08-10T10:04:19.372804+00:00 app[web.1]: > node index.js
2020-08-10T10:04:19.372804+00:00 app[web.1]: 
2020-08-10T10:04:20.468443+00:00 app[web.1]: Bot [welcomeMessage.js] is ready!
2020-08-10T10:04:30.643838+00:00 app[web.1]: Bot [index.js] is ready!
2020-08-10T10:05:17.228802+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2020-08-10T10:05:17.246146+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-08-10T10:05:17.307500+00:00 heroku[web.1]: Process exited with status 137
2020-08-10T10:05:17.347445+00:00 heroku[web.1]: State changed from starting to crashed

start中的package.json命令为:node index.js

Procfile是:

worker: node index.js

index.js是:

const Discord = require("discord.js")
const client = new Discord.Client()
const welcomeMessage = require("./welcomeMessage")

client.on("ready", () => {
    console.log("Bot [index.js] is ready!")
})

client.login(process.env.TOKEN)

我还有另一个文件welcomeMessage

const Discord = require("discord.js")
const client = new Discord.Client()

client.on("ready", () => {
    console.log("Bot [welcomeMessage.js] is ready!")
})

client.on('guildMemberAdd', member => {

    let welcomeChannel = client.channels.cache.get('0000000000000')

    welcomeChannel.send("hello world")
})

client.login(process.env.TOKEN)

是什么原因导致这个问题?

2 个答案:

答案 0 :(得分:1)

老兄,我以某种方式在这里做了,第一次有一次随机尝试对我有用,我真高兴!看,我希望它也对您有用。首先,请查看您的“ package.json”文件,其中必须包含:

"scripts": {
    
  },

您应该在其中放置“ start" : "node index.js”(即使“脚本”中已经有其他东西,但不要删除其他内容,只需添加此内容即可),就像这样:

 "scripts": {
    "start": "node index.js",
  },

然后转到您的Procfile,将“ worker : node index.js”更改为“ worker npm start”(之所以尝试,是因为我注意到只有web在运行,并且其命令是“ web npm start”)< / p>

应该可以解决问题了!

我非常确定这是为我解决的问题,现在它正在不停地运行,但是如果还没有解决,我还在终端上使用了一些命令,这些命令是:“ heroku run worker”,还有“ heroku ps:scale worker=1”。

我希望它能对您有所帮助,因为有其他错误,我已经连续8个小时尝试使其正常工作,而且我知道这件事情不起作用有多烦人。

不好意思:您还需要做其他人之前说过的话:

“((...),您需要禁用Web dyno并启用worker dyno”。

PS:我知道您已经做了开始,我只是在想是否有人在没有此信息的情况下到达这里,也许会有所帮助。

答案 1 :(得分:0)

原来,您需要禁用Web dyno并启用worker dyno。