У меня есть несколько моделей, импортированных в файл контроллера, который я использую для запроса Sequelize.
const ModelA = require('../models/ModelA')
const ModelB = require('../models/ModelB')
Я хочу создать API (с экспрессом и NodeJS), который позволяет использовать параметр запроса, называемый include.
ПОЛУЧИТЬ /api/v1/myrequest?includes=ModelA,ModelB
Включения необязательны.
Я генерирую объект запроса:
const { include } = query.params
const queryObject = {}
queryObject.include = [{
model: Model,
as: 'Model',
include: include ? include.split(',') : [] // either ModelA, ModelB, none or both
}
]
Это не работает, потому что динамический запрос на включение — это просто массив. Но я хочу сопоставить реальные модели, которые я импортировал, с запросом req.query.
Все модели должны быть предварительно зарегистрированы в Sequelize. Таким образом, вы можете сделать следующее:
include.split(',').map(x => sequelize.models[x])