Получение нечеткой синтаксической ошибки при заполнении с помощью Sequelize - PullRequest
0 голосов
/ 06 мая 2020

Я слишком долго смотрел на этот код и даже не уверен, в чем проблема. Есть ли способ получить логи лучше, чем этот расплывчатый syntax error at or near ")" ?? Меня убивает то, что он даже не говорит мне, на какой линии он находится. Или какая часть SQL вызывает проблему.

Примечания: Запросы, которые я здесь выполняю, возвращаются нормально. Кажется, дело в том, что когда я пытаюсь вставить giftCardEmailTemplateArr, все становится не так.

Заранее благодарю за помощь. Я все еще новичок, поэтому любые другие советы тоже будут очень полезны.

"use strict";
var casual = require("casual");
module.exports = {
  up: async (queryInterface, Sequelize) => {
    const getSettings = async () => {
      await queryInterface.sequelize
        .query(`SELECT * from settings;`)
        .then((res) => {
          // console.log("settings", res[0]);
          console.log("successful setting query");
          settings = res[0];
        });
    };

    const generateGiftCardEmailTemplate = async () => {
      console.log("generating array");

      settings.forEach(async (setting) => {
        let user = null;
        await queryInterface.sequelize
          .query(
            `SELECT * 
          FROM users 
          WHERE "role"= 'owner' AND "companyId" = '${setting.companyId}'`
          )
          .then((res) => {
            // console.log("users", res[0][0]);
            user = res[0][0];
            console.log("successful user query");
          })
          .catch((err) =>
            console.log("found in creation of template", err)
          );

        const gCEmailTemplateObj = {
          id: casual.uuid,
          fromName: user.username,
          fromEmail: user.email,
          logo: `https://i.picsum.photos/id/${casual.integer(
            101,
            999
          )}/250/250.jpg`,
          subject: casual.words(4),
          title: casual.words(2),
          body: casual.sentences(3),
          cta: casual.url,
          emailFooter: casual.words(6),
          companyId: setting.companyId,
          settingId: setting.id,
          updatedAt: new Date(),
          createdAt: new Date(),
        };
        giftCardEmailTemplateArr.push(gCEmailTemplateObj);
      });
    };
    const seedEmailTemplate = () => {
      queryInterface
        .bulkInsert(
          "giftCardEmailTemplates",
          giftCardEmailTemplateArr,
          {}
        )
        .catch((err) => {
          console.log("found in putting of templates", err);
          console.log("piece of array", giftCardEmailTemplateArr);
        });
    };
    let giftCardEmailTemplateArr = [];
    let settings = null;
    await getSettings();
    await generateGiftCardEmailTemplate();
    return seedEmailTemplate();
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.bulkDelete(
      "giftCardEmailTemplates",
      null,
      {}
    );
  },
};

Ошибка, которую я получаю

original: error: syntax error at or near ")"
      at Connection.parseE (C:\Users\Chris\Documents\GitHub\giftcards-web\node_modules\pg\lib\connection.js:581:48)
      at Connection.parseMessage (C:\Users\Chris\Documents\GitHub\giftcards-web\node_modules\pg\lib\connection.js:380:19)
      at Socket.<anonymous> (C:\Users\Chris\Documents\GitHub\giftcards-web\node_modules\pg\lib\connection.js:116:22)
      at Socket.emit (events.js:310:20)
      at addChunk (_stream_readable.js:286:12)
      at readableAddChunk (_stream_readable.js:268:9)
      at Socket.Readable.push (_stream_readable.js:209:10)
      at TCP.onStreamRead (internal/stream_base_commons.js:186:23) {
    length: 90,
    severity: 'ERROR',
    code: '42601',
    detail: undefined,
    hint: undefined,
    position: '39',
    internalPosition: undefined,
    internalQuery: undefined,
    where: undefined,
    schema: undefined,
    table: undefined,
    column: undefined,
    dataType: undefined,
    constraint: undefined,
    file: 'scan.l',
    line: '1149',
    routine: 'scanner_yyerror',
    sql: 'INSERT INTO "giftCardEmailTemplates" () VALUES ;',
    parameters: undefined
  },
  sql: 'INSERT INTO "giftCardEmailTemplates" () VALUES ;',
  parameters: undefined
...