Шаблонный литерал, вызывающий нераспознанную ошибку токена - PullRequest
0 голосов
/ 28 апреля 2018

Я пишу бот-диск с использованием 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} не вызывает таких проблем.

Что я сделал не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...