Sequelize назначить параметры запроса модели

#node.js #express #sequelize.js

#node.js #выразить #sequelize.js

Вопрос:

У меня есть несколько моделей, импортированных в файл контроллера, который я использую для запроса Sequelize.

 const ModelA = require('../models/ModelA')
const ModelB = require('../models/ModelB')
 

Я хочу создать API (с помощью express и NodeJS), который допускает параметр запроса с именем includes .

GET /api/v1/myrequest?включает в себя=ModelA,ModelB

Включение не является обязательным.

Я создаю queryObject:

 const { include } = query.params      
const queryObject = {}
      queryObject.include = [{
        model: Model,
        as: 'Model',
        include: include ? include.split(',') : [] // either ModelA, ModelB, none or both
      }
      ]
 

Это не работает, потому что динамический запрос include — это просто массив. Но я хочу сопоставить реальные модели, которые я импортировал, с запросом.запрос запроса.

Ответ №1:

Все модели должны быть зарегистрированы в Sequelize заранее. Таким образом, вы можете сделать следующее:

 include.split(',').map(x => sequelize.models[x])