首页 > 解决方案 > 模板文字导致无法识别的令牌错误

问题描述

我正在使用 Discord.js 编写一个不和谐机器人,并且在将其添加到我的主项目之前我正在尝试使用 SQLite。我或多或少地遵循了本指南,然后修改了代码以更接近我对主要项目的目标。

有一段代码导致问题:

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}是造成:

(节点:12348)UnhandledPromiseRejectionWarning:错误:SQLITE_ERROR:无法识别的令牌:“{”
(节点:12348)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。(拒绝编号:1)

替换${nufu}"any_other_string"消除了错误,但${JSON.stringify( new foo() )}没有,

${message.author.id}不会导致此类问题。

我做错了什么?

标签: javascriptsqlitediscord.js

解决方案


推荐阅读