使用nodejs的sequelize更新多对多连接表

我有一个产品表和一个分类表。 一个产品可以有很多类别,一个类别可以有很多产品,因此我有一个ProductsCategories表来处理多对多的联接。

在下面的示例中,我试图将我的一个产品(ID为1)与3个不同的类别(ID为1,2和3)关联起来。 我知道在我的代码片断下面的东西是closures的,因为我得到一个丑陋的SQL错误消息,指示我试图插入一个对象到ProductsCategories连接表。 我不知道如何修复下面的代码片段,或者我甚至在这里的正确轨道上。 Sequelize文档对于这种事情相当稀less。

models.Product.find({ where: {id: 1} }).on('success', function(product) { models.Category.findAll({where: {id: [1,2,3]}}).on('success', function(category){ product.setCategories([category]); }); }); 

我真的很感谢这里的一些帮助,谢谢。 另外,我正在使用Postgres,不知道是否重要。

       

网上收集的解决方案 "使用nodejs的sequelize更新多对多连接表"

models.Category.findAll返回一个数组。 通过做setCategories([category]); 你正在将数组包装在一个数组中。 尝试将其更改为setCategories(category); 代替

我觉得你很接近。 我有一些与我的代码类似的问题。 尝试迭代你find的类别,然后添加它们。 我认为这可能会诀窍。

 models.Category.findAll({where: {id: [1,2,3]}}).on('success', function(category){ for(var i=0; i<category.length; i++){ product.setCategories([category[i]]); } });