我正在使用Discord.js编写不和谐机器人,并且在将其添加到我的主项目之前我正在尝试使用SQLite。我或多或少地跟着this guide,然后修改了代码,使其更接近主要项目的目标。
有一段代码导致问题:
sql.get(`SELECT * FROM scores WHERE userId ="${message.author.id}"`).then( row =>
{
if ( row )
{
let nufu = JSON.stringify( new foo() );
sql.run(`UPDATE scores SET object = ${nufu} WHERE userId = ${message.author.id}`);
}
else
{
sql.run("INSERT INTO scores (userId, object) VALUES (?,?)", [message.author.id, JSON.stringify( new foo() )] );
}
}).catch( () => {
console.error;
sql.run("CREATE TABLE IF NOT EXISTS scores (userId TEXT, object TEXT)");
});
特别是${nufu}
导致:
(node:12348)UnhandledPromiseRejectionWarning:错误:SQLITE_ERROR:无法识别的令牌:" {"
(节点:12348)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这个错误源于在没有catch块的情况下抛出异步函数,或者拒绝未使用.catch()处理的promise。 (拒绝id:1)
将${nufu}
替换为"any_other_string"
消除了错误,但${JSON.stringify( new foo() )}
没有,
${message.author.id}
不会导致此类问题。
我做错了什么?