首页 > 解决方案 > findall include 里面 include by use Sequelize

问题描述

我有 3 表假期和 user_mangment 和用户

我想要什么 findall 假期然后包括 user_mangment 然后通过 user_mangment 包括用户

这是我所做的代码......模型之间的第一个关系

楷模 :

db.user_mangment.belongsTo(db.user, {
  foreignKey: "userId",
  as: "user",
});


db.vacation.belongsTo(db.user_mangment, {
  foreignKey: "userMangmentId",
  as: "user_mangment",
});

这里的代码findAll:

find_vacation:async(req,res)=>{
  var Sequelize = require('sequelize');
  await   vacation.findAll({
    include: ['user_mangment',{include:['user']}]

  }).then(data => {
    res.send(data)
  })

}

我得到了错误:

(node:548) UnhandledPromiseRejectionWarning: Error: Include unexpected. Element has to be either a Model, an Association or an object.

我不知道也许我忘记了什么所以请帮忙

标签: node.jssequelize.js

解决方案


我解决了T_T

find_vacation:async(req,res)=>{
  var Sequelize = require('sequelize');
  await   vacation.findAll({
    include: [{model:user_mangment,as:'user_mangment',include:['user']}]

  }).then(data => {
    res.send(data)
  })

},

更好地使用此代码是更多详细信息

find_vacation:async(req,res)=>{
  var Sequelize = require('sequelize');
  await   vacation.findAll({
    include: [{model:user_mangment,as:'user_mangment',include:[{model:user,as:'user'}]}]

  }).then(data => {
    res.send(data)
  })

},

推荐阅读