【发布时间】:2020-10-20 04:01:14
【问题描述】:
我正在创建一个 discord.js 机器人,它所做的一件事是查询具有用户在表中注册的昵称的服务器 ID。
这里是注册部分
if (message.content.startsWith(`${config.prefix}setname`)) {
const serverid = message.guild.id;
console.log(serverid);
const query = `SELECT * FROM dict1 WHERE serverID = ?`;
db.get(query, [serverid], (err, row) => {
if (err) {
console.log(err);
return;
}
if (row === undefined) {
const nick = message.content.slice(9);
const query2 = `SELECT * FROM dict1 WHERE nick = ?`;
db.get(query2, [nick], (err, row2) => {
if (err) {
console.log(err);
return;
}
if (row2 === undefined) {
const insertdata = db.prepare(`INSERT INTO dict1 VALUES(?,?)`);
insertdata.run(nick, serverid);
insertdata.finalize();
message.reply('Done! Nickname set to: ' + nick);
return;
}
else {
message.reply('This nick is already taken');
}
});
}
else {
message.reply('This server already has a nickname set!');
}
});
}
现在被抓取的服务器 ID 完全显示在表格中,但是当我检索它时,服务器 ID 显示缺少和更改的数字。
抓取部分
if (msg.channel.type == 'dm' && msg.content.startsWith('!goto')) {
const sentMessage = msg.content.slice(6);
const query = `SELECT * FROM dict1 WHERE nick = ?`;
db.get(query, [sentMessage], (err, row) => {
console.log(row);
const temp1 = row.serverID;
global.destinationServer = String(temp1);
if (err) {
console.log(err);
return;
}
});
实际的服务器 ID 是 726202918700712008,但在记录与请求的昵称匹配的行时,它显示为 726202918700712100
希望我提供的数据对您有所帮助,并在此先感谢您! :)
【问题讨论】:
标签: javascript node.js sqlite discord.js