node.js - 嗨,聪明的人,我对(多对多)与 sequelize orm 的关联有疑问

标签 node.js sequelize.js

我对(多对多)与 sequelize orm 的关联有疑问

就我而言,我有 3 张 table

产品,
类别,
products_categories

这是 nodeJS 中的关联

Product.belongsToMany(Categories, {
  through: {
    model: ProductsCategories,
    as: 'products_categories',
  },
  foreignKey: "category_id"
})

Categories.belongsToMany(Product, {
  through: {
    model: ProductsCategories,
    as: 'products_categories',
  },
  foreignKey: "product_id"
})

当我尝试获取带有类别的产品时
sequelize 不会让我返回产品的类别

这里是例子
 const products = await Product.findAll({
      include:{
        model:Categories,
        nested:true,
        through:{
            model: ProductsCategories,
            as: 'products_categories',
        }
      }
    });

请帮助我了解我的错误在哪里))

最佳答案

请将您的模型定义更正为:

Product.belongsToMany(Categories, {
  through: ProductsCategories,
  as: 'products_categories',
  foreignKey: "category_id"
})

Categories.belongsToMany(Product, {
  through: ProductsCategories,
  as: 'products_categories',
  foreignKey: "product_id"
})

并找到全部:
 const products = await Product.findAll({
      include:{
        model:Categories,
        as: 'products_categories'
      }
    });

关于node.js - 嗨,聪明的人,我对(多对多)与 sequelize orm 的关联有疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60246276/

相关文章:

javascript - 如何使用nodejs请求库从客户端检测服务器关闭的连接

node.js - 关联模型中的 SequelizeEagerLoadingError

mysql - Sequelize hook afterUpdate 如何获取脏字段、原始值和更新后的值?

sql - 转换/删除查询中的交叉连接

sequelize.js - Sequelize : multiple entities in the same table breaks test

javascript - Mongoose JS 查询全部返回 null 或空

node.js - 结合 NodeJS Fiber + VM 沙盒

javascript - Amazon S3 Node.js SDK 删除对象

node.js - AWS lambda 与 mongoose 到 Atlas - MongoNetworkError

node.js - 如何替换文件(或多个文件)中的多行?