Sequelize 将查询参数分配给模型

Sequelize assign query parameters to Model

我在用于查询 Sequelize 的控制器文件中导入了多个模型。

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

我想创建一个 API(使用 express 和 NodeJS),它允许一个名为 includes 的查询参数。

GET /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])