无法创建具有一对多关系的对象

时间:2019-04-20 12:54:52

标签: node.js database sequelize.js

我是续集的新手,因此在琐碎的任务上遇到了一些麻烦。我有一个数据库定义:

 items.hasMany(images, {as: 'images', foreignKey: 'itemID'});

当我创建这样的项目时...

let result = await db.items.create(
      {
        type: req.body.type,
        name: req.body.name,
        images: [req.body.images]
      },
      {
        include: [ {model: db.images,  as: "images" } ]
      }
    );

...我遇到错误:

  

TypeError:instance.set不是函数

可能是什么问题?还是这不是正确的插入方式?

解决方案

问题出在我传递的对象类型上。我正在传递[req.body.images],但它已经是一个数组。因此删除[]问题解决了。

感谢所有检查过它的人:)

1 个答案:

答案 0 :(得分:0)

let result = await db.items.create([
  {
    type: req.body.type,
    name: req.body.name,
    images: [req.body.images]
  },
  {
    include: [ {model: db.images,  as: "images" } ]
  }
]);
create function()中用数组包装参数。希望对您有帮助。