Sequelize的动态set / get方法用于关联

时间:2015-07-13 00:44:31

标签: node.js sequelize.js

Sequelize的文档中唯一可以找到的关于此问题的参考文献是Relations / Associations

显然,如果你有类似的东西:

Person.hasOne(Person, {as: 'Father', foreignKey: 'DadId'})

然后你可以做类似的事情:

Person.setFather();
Person.getFather();

据我了解,这些set和get方法是为关联动态创建的。

但是,我尝试了类似的东西,它不起作用:

Person.hasOne(Father, { foreignKey: 'father_id' });

var aPerson = Person.build({
    name: 'Mike'
});

aPerson.setFather({ id: 1 });

我意识到{ id: 1 }位可能不正确,但问题是我收到一条消息,说setFather函数是undefined

基本上,我的问题是:如何将关联附加到Sequelize中某个模型的已创建实例?

1 个答案:

答案 0 :(得分:0)

你有父亲的特定模特吗?关联使用模型名称,这意味着只需导入用户模型,因为父无法工作:

var Person = sequelize.define('person')

var Father = person;

Person.hasOne(Father) // adds setPerson
Person.hasOne(Person, { as: 'father'  }) // adds setFather

我最近更新了关联的API文档 - 希望它应该更清楚一些函数的添加以及它们采用的参数http://docs.sequelizejs.com/en/latest/api/associations/has-one/