Sequelize вставляет запись дважды - PullRequest
0 голосов
/ 15 апреля 2020

Я использую sequelize с MySQL для вставки записи. Я использую таблицу для отображения средних значений за определенное время. Я хочу проверить таблицу на наличие записи, которой меньше недели, если есть такая, которую я хочу вернуть этой записи клиенту, если нет записи, которая меньше недели, я вычисляю средние значения и вставляю ее в таблицу, однако, запись вставляется дважды. Единственное, что я могу сказать, это то, что оно может иметь какое-то отношение к событию узла l oop, потому что эту функцию можно вызывать в пределах al oop, я могу ошибаться. Почему я получаю дубликаты записей в средней таблице?

let averages;
let week = 7 * 60 * 60 * 24 * 1000;
let weekAgo = new Date(Date.now() - week);
averages = await sequelize.models.Average.findOne({
  where: {
    industry_id: industry._id,
    createdAt: {
      [Op.gte]: weekAgo,
    },
  },
});
if (averages) {
  return averages.dataValues;
}
averages = await getIndustryAverage(industry);
averages = averages.dataValues;
averages = await Average.create({
  industry_id: industry._id,
  // fields....
});
return averages.dataValues;

...