【发布时间】:2022-01-22 13:57:36
【问题描述】:
我在将我自己的 Discord 机器人部署到 heroku 时遇到了麻烦。当我部署它时,我的机器人仍然离线。我刚刚回来讨论编码机器人和部署到 heroku 抱歉!
在我的 bot.js 中,这是我放的:
require("dotenv").config();
let ver = process.env.NODE_ENV;
client.once("ready", async () => {
if (ver === "production") {
client.user.setActivity(`in code land`, { type: "PLAYING" });
} else {
client.user.setActivity(`over ${client.guilds.cache.size} server(s)`, {
type: "WATCHING",
status: "IDLE",
});
}
console.log(`Logged in as ${client.user.tag}!`);
console.log(`the prefix is ` + prefix);
});
bot.js的底部是:
client.login(process.env.NODE_ENV);
在 .env 中这是我的代码:
NODE_ENV = TOKEN
在 package.json 中,这是我放入脚本的内容:
"scripts": {
"start": "node .",
"test": "echo \"Error: no test specified\" && exit 1",
"production": "NODE_ENV=production&&npm start",
"development": "set NODE_ENV=development&&npm start"
}
我创建了一个名为 Procfile 的文件,然后输入以下代码:
注意:我把Procfilenpm start中的代码改成了node bot.js,bot仍然离线
workers: node bot.js
我使用 git 遵循了 heroku 和 github 中的说明,但我真的不明白为什么它不起作用。如果我需要编辑我的帖子以发送图片,请告诉我。谢谢!
更新:2021 年 12 月 22 日: 我查看了 Heroku 应用程序日志,它是这样说的:
SyntaxError: Unexpected token '??='
也许这就是我的机器人仍然离线的原因?
【问题讨论】:
-
你在NODE_ENV环境变量中放了什么,为什么用它作为登录的token?
-
尝试在您的 Procfile 中将
workers: npm start更改为workers: node bot.js。 -
@user15517071 具体是什么环境?我在哪里可以找到它?这是
scripts部分中的代码吗? @Toasty 如果我更换工作人员,我是否也应该更改scripts部分的npm start? -
请注意,heroku 问题很少适合git 标签。 Heroku 使用 Git 作为程序的传输层;你推送一些提交,Heroku 会尝试编译和运行你的程序,并 通过 Git 向你吐出错误消息,但 Git 与错误无关。这只是一个中继。
-
哦,好的,谢谢@torek 提供的信息
标签: node.js github heroku discord.js