#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])