javascript - 模板文字导致无法识别的令牌错误
问题描述
我正在使用 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}
不会导致此类问题。
我做错了什么?
解决方案
推荐阅读
- postgresql - 你能帮我用 postgres 为 django 编写完美的 ORM 查询,满足以下条件吗?
- flutter - 在 ListView 内的行中使用 SpaceEvenly 将不起作用
- javascript - 计算对象属性的总和并将它们存储在数组中
- sql - teradata sql问题:如何通过另一列计算具有先前行顺序的不同列中的时间差?
- google-cloud-platform - 用于集成测试的 Google Cloud Functions CI/CD(Python)?
- c# - 包含特定字段以使用 C# 从 MongoDB 获取数据时出错
- python - Flask、Gunicorn、Mysqlconnctor /GET 每次刷新都会出错
- salesforce - Salesforce 文档中的 DocuSign 模板
- spring-boot - spring-boot 应用程序中来自不同包的控制器的 Swagger 配置
- api - 如何在柏树中为类似 API 的邮递员编写脚本