Sequelize included 模型结果键是字符串

Sequelize included Model result keys are strings

原谅我有限的知识,我使用 Sequelize 大约一周了,

 Models.PlannerModel.Builds.findAll({
      raw: true,
      where: {
        ProposedDelivery: { [Op.gt]: moment().format("YYYY-MM-DD") },
        description: { [Op.ne]: null },
        description: { [Op.ne]: " " },
        description: { [Op.not]: null },
      },
      include: [
        {
          model: Models.PlannerModel.Unit,
          required: true
        },
      ],

上面的结果正如您所期望的,除了 include 中字段的所有键都是字符串,所以在我的 Pug template/class 中引用它们必须用括号

总的来说不是世界末日只是想知道我是否做错了什么?

干杯!

关闭 raw 以获取嵌套模型对象以及获取普通对象,对每个返回的模型实例使用 get({ plain: true})

 const builds = await Models.PlannerModel.Builds.findAll({
      where: {
        ProposedDelivery: { [Op.gt]: moment().format("YYYY-MM-DD") },
        [Op.and]: [{
          description: { [Op.ne]: null },
        }, {
          description: { [Op.ne]: " " },
        }, {
          description: { [Op.not]: null },
        }
        ]
      },
      include: [
        {
          model: Models.PlannerModel.Unit,
          required: true
        },
      ]
 })
 const plainBuilds = builds.map(x => x.get({ plain: true }))

请注意我用description改变了条件。在您的条件版本中,只有最后一个会起作用,因为如果同一对象中有多个相同的键,JS 只会保存最后一个键。