Sequelizer连接多个hasMany关联

时间:2017-04-17 07:44:51

标签: node.js sequelize.js

我正在关注正式的Sequelizer文档,但我无法使用多个“hasMany”关联。

以下代码呈现错误: Unhandled rejection Error: [object Object] is not associated to User!

这是如何正确完成的?

模型/ user.js的

module.exports = function(sequelize, DataTypes) {
  var User = sequelize.define("User", {
    username: DataTypes.STRING
  }, {
    classMethods: {
      associate: function(models) {
        User.hasMany(models.Movie, models.Book)
      }
    }
  });

  return User;
};

的路由/ index.js

var models  = require('../models');
var express = require('express');
var router  = express.Router();

router.get('/', function(req, res) {
  models.User.findAll({
    include: [ models.Task, models.Movie ]
  }).then(function(users) {
    res.render('index', {
      title: 'Sequelize: Express Example',
      users: users
    });
  });
});

module.exports = router;

1 个答案:

答案 0 :(得分:1)

发现问题,你必须单独定义它们(例如User.hasMany两次)

module.exports = function(sequelize, DataTypes) {
  var User = sequelize.define("User", {
    username: DataTypes.STRING
  }, {
    classMethods: {
      associate: function(models) {
        User.hasMany(models.Movie),
        User.hasMany(models.Books)
      }
    }
  });

  return User;
};