sequelize Model.hasOne错误:模型与ModelTwo无关

Eri*_*ell 19 javascript sql node.js sequelize.js

我已将sequelizejs集成到我的快速框架中.我配置了所有模型,并试图用它构建我的第一个查询.

我一直收到错误"错误:模型与ModelTwo没有关联!"

app.get('/',function(req,res){
 db.Member.findAll({include:[{model:db.MemberProfile,as:'Profile'}]})
 .success(function(users){
  if(users){
   res.json(users);
  }else{
   res.send('no users');
  }
 });
});
Run Code Online (Sandbox Code Playgroud)

// model.js

module.exports = function(sequelize,sql) {
 return sequelize.define('Model', {
  //attributes
 });

 Model.hasOne('ModelTwo',{foreignKey:'model_id'});

};
Run Code Online (Sandbox Code Playgroud)

//model_two.js

module.exports = function(sequelize,sql) {
 return sequelize.define('ModelTwo', {
  //attributes
 });

//no relationship defined. Tried ModelTwo.hasMany('Model',{foreignKey:'id'});
//but it yields the same resulting error
};
Run Code Online (Sandbox Code Playgroud)

关于可能出错的任何想法?我正在使用最新版本的sequelize 1.7.0-rc6.

cod*_*aff 28

这实际上是另一种抛出相同错误的情况,

当我尝试as在包含模型时使用别名选项时,我遇到了同样的问题.只要您使用默认名称别名,这不会引发错误,但如果您尝试使用其他名称,则会收到错误.

解决方案,

它明确地说

如果关联是别名(使用该as选项),则必须 在包含模型时指定此别名.

这意味着,反之亦然

如果要在包含时为别名设置别名,则必须为其关联设置别名(使用该as选项).

  • 显然我没有足够的rtfm.非常感谢您的回答! (3认同)

Eri*_*ell 7

我想到了.似乎我需要在模型定义中使用以下内容来添加关联,而不是文档中的简单Model.hasOne(bla).

classMethods:{
  associate:function(models){
    Model.hasOne(models.ModelTwo,{foreignKey:'foreign_key'})
  }
}
Run Code Online (Sandbox Code Playgroud)

此代码在他们网站上的快递教程中,而不是在关联文档中.

  • 这不应该是必要的 (5认同)