小编Nov*_*706的帖子

在Sequelizejs中保存带有关联的对象

据我所知,使用Sequelizejs,似乎没有办法在保存对象本身时保存对象关联.

例如,我有一个可以有1个或多个phoneNumber的联系人.目前我对这个协会有类似的东西:

global.db.Contact.hasMany(global.db.PhoneNumber, {as: 'phoneNumbers'});
Run Code Online (Sandbox Code Playgroud)

使用休息端点我想发布一个新的联系人对象(带有任何提供的电话号码)并将其保存到数据库中.我的请求对象看起来像这样:

{
    firstName: "john",
    lastName: "Doe",
    phoneNumbers: [
        { number: "555-555-5555", type: "home" }
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在我传递这个对象来构建:

var contact = Contact.build(req.body);
Run Code Online (Sandbox Code Playgroud)

然后调用save(我知道我可以使用create而不是build/save但是我们在save中有自定义逻辑来跟踪修改后的数据以及哪个用户进行了修改)

contact.save();
Run Code Online (Sandbox Code Playgroud)

这引发了以下错误,这是有道理的.

column "phoneNumbers" of relation "Contacts" does not exist
Run Code Online (Sandbox Code Playgroud)

sql调用正在尝试设置不存在的列"phoneNumbers"的值.我显然不希望它这样做...我真的希望用我正在创建的联系人的ID批量创建阵列中的每个phoneNumber.

我发现的唯一例子是:https://gist.github.com/sdepold/3040391我真的不想这样做......因为我来自休息端点,我想要一种方法一般地做这个操作(我会有很多带关联的模型).我还需要能够批量执行这些操作(用于从其他源导入联系人),所以我希望它是最少量的sql调用.有没有人找到一个很好的方法来做到这一点?

sequelize.js

10
推荐指数
1
解决办法
4902
查看次数

标签 统计

sequelize.js ×1