使用 json 创建 n:m 个对象并续集?

Create n:m objects using json and sequelize?

我正在尝试学习 sequelize,但无法创建 n:m 对象。到目前为止,我有创建 3 个表(Store、Product、StoreProducts)的 2 个模型和以下模型:

models/Store.js

module.exports = (sequelize, DataTypes) => {
    return Store = sequelize.define('Store', {
        name: {
            type: DataTypes.STRING,
        },
        address: {
            type: DataTypes.STRING,
        }
    });
};

models/Product.js

module.exports = function(sequelize, DataTypes) {
  return Product = sequelize.define('Product', { 
        name: {
            type: DataTypes.STRING,
        }
  });
};

models/Index.js

 models.Store.belongsToMany(models.Products, {through: 'StoreProducts', foreignKey: 'storeId'});
 models.Products.belongsToMany(models.Store, {through: 'StoreProducts', foreignKey: 'productId'});

我想"add"以下json对象。

 var store = {
   name:'corner store',
   address: '123 Main Street',
   products: [
     'string beans', 'coffee', 'milk'
   ]
 };

寻找任何方向,我已经尝试了大约 10 条路线,我能得到的最好的是创建了商店和产品记录,但没有任何关系。

看看 nested creation(该功能尚未记录)

Store.create({
  name:'corner store',
  address: '123 Main Street',
  products: [
    { name: 'string beans' }, { name: 'coffee' }, { name: 'milk' }
  ]
}, {
  include: [Product]
});

这将创建商店和产品并将两者相关联。

请注意,这仅适用于创建 - 您不能使用它将新产品与现有商店等相关联。

Store.find().then(function (store) {
  store.createProduct({ name: 'hats' });
});