【发布时间】:2017-05-10 05:46:03
【问题描述】:
我正在为 Discord 制作一个机器人,该机器人的功能之一是关卡系统。我决定从使用 JSON 存储数据到使用 sqlite。我在 node.js 中使用 sqlite3 并试图创建一个函数来创建/检索玩家的数据。我的目标是让这个函数从查询中返回数据,但我正试图找出我做错了什么。我已经读到我需要使用发送到查询函数的回调,但这对我也不起作用(对于这个函数的目标也不起作用)。
因此,任何有关如何创建函数以从查询中返回数据的帮助都将非常有帮助!这是我放弃之前的代码,并决定在我失去更多头发之前来这里寻求帮助。其他一切都按我的意愿工作,我只是无法从 db.each() 检索数据。
exports.getPlayerData = function(players,msg,mention = false){
if(mention){
// console.log("mention found");
var member = msg.mentions.users.first();
} else {
var member = msg.member.user;
};
var db = new sqlite3.Database('data/levels/' + msg.guild.id + '.db');
var check;
db.serialize(function() {
var stmt = "CREATE TABLE if not exists uid_" + member.id + " (id INTEGER PRIMARY KEY, username TEXT, avatarID TEXT, avatarURL TEXT, xp INTEGER, level INTEGER, lastXp INTEGER)";
db.run(stmt);
db.run("INSERT OR IGNORE INTO uid_" + member.id + " (id,username,avatarURL,xp,level,lastXP) VALUES (?,?,?,?,?,?)", member.id,member.username, member.avatarURL , 0, 0, 0);
db.each("SELECT * FROM uid_" + member.id + " WHERE id = " + member.id , function(err, row) {
console.log(row);
return row;
});
});
// return row;
db.close();
}
【问题讨论】: