我试图将每个公会的ID和名称放入Discord聊天机器人处理到PGSQL数据库表中。我使用Discord.js module及其client.guilds(一个JS Map对象)和forEach方法来重复每个服务器名称和id的每个PGSQL查询。在我运行该过程(我通过部署我的机器人正在运行的Heroku应用程序执行此操作)之后,我使用PGadmin来渲染表格,这是我的GitHub文件中写入的查询(我的github)链接到heroku部署)。
这是我的代码:
client.guilds.forEach(function (value, key) {
con.query('INSERT INTO Servers (name, id) VALUES (\'' + value.name.toString() + '\', ' + key.valueOf() + ');', (err, res) => {
console.log(res);
console.log(err);
});
});
我的问题是,在部署应用程序后,每个不和谐服务器名称和ID都不会插入各自的列中。
答案 0 :(得分:0)
我已经通过在机器人登录Discord后插入此代码来修复我的问题。因为机器人在与Discord API连接之前无法检索任何信息,所以首先不会加载查询,因为客户端无法访问公会信息。 我决定将它放在我的client.ready事件中并且它有效!
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
client.guilds.forEach(function (value, key) {
con.query('INSERT INTO Servers (name, id) VALUES (\'' + value.toString() + '\', ' + key.valueOf() + ');', (err, res) => {
console.log(res);
console.log(err);
});
});
con.end();
});