Безопасная отправка кратных параметров в предложение IN с помощью Sequelize для необработанного запроса

#javascript #sql #security #sequelize.js

#javascript #sql #Безопасность #sequelize.js

Вопрос:

Используя Sequelize, я могу выполнять необработанные запросы и безопасно отправлять параметры (благодаря параметрам привязки к базе данных через параметры:

 const baz = 1;

sequelize.query(
  'select * from foo where bar=:baz',
  { replacements: { baz } },
);
  

Существует ли аналогичный способ решения IN (с несколькими значениями)?

 const baz = [1, 2, 3];

sequelize.query(
  'select * from foo where bar IN (:baz)',
  { replacements: { baz } },
);
  

Ответ №1:

Согласно документации:

Замены массива будут обработаны автоматически, следующий запрос выполняет поиск проектов, статус которых соответствует массиву значений

Так что это действительно должно сработать:

 const baz = [1, 2, 3];

sequelize.query(
  'select * from foo where bar IN (:baz)',
  { replacements: { baz } },
);