Sequelize TypeError关联不是一个函数

我创build了一个一对多的关系,并在将关联模型传递给我的数据库对象时遇到了一个奇怪的错误。 我不明白错误的来源,因为方法跟在文档之后。 我是否需要在目标模型中编写参考?

错误:

db.DiscoverySource.associate(db); ^ TypeError: db.DiscoverySource.associate is not a function at Object.<anonymous> (/Users/user/Desktop/Projects/node/app/app/models/db-index.js:33:20) 

源模型(一)organization.js:

 module.exports = function(sequelize, DataTypes) { var Organization = sequelize.define('organization', { organizationId: { type: DataTypes.INTEGER, field: 'organization_id', autoIncrement: true, primaryKey: true }, organizationName: { type: DataTypes.STRING, field: 'organization_name' }, admin: DataTypes.STRING },{ freezeTableName: true, classMethods: { associate: function(db) { Organization.belongsToMany(db.User, { through: 'member', foreignKey: 'user_id' }), Organization.hasMany(db.DiscoverySource, { foreignKey: 'organization_id' }); }, } }); return Organization; } 

目标(许多)discovery-source.js:

 module.exports = function(sequelize, DataTypes) { var DiscoverySource = sequelize.define('discovery_source', { discoverySourceId: { type: DataTypes.INTEGER, field: 'discovery_source_id', autoIncrement: true, primaryKey: true }, discoverySource: { type: DataTypes.STRING, field: 'discovery_source_name' }, organizationId: { type: DataTypes.TEXT, field: 'organization_id' }, },{ freezeTableName: true, }); return DiscoverySource; } 

join模型的db-index.js:

 var Sequelize = require('sequelize'); var path = require('path'); var config = require(path.resolve(__dirname, '..', '..','./config/config.js')); var sequelize = new Sequelize(config.database, config.username, config.password, { host:'localhost', port:'3306', dialect: 'mysql' }); sequelize.authenticate().then(function(err) { if (!!err) { console.log('Unable to connect to the database:', err) } else { console.log('Connection has been established successfully.') } }); var db = {} db.Member = sequelize.import(__dirname + "/member"); db.Organization = sequelize.import(__dirname + "/organization"); db.User = sequelize.import(__dirname + "/user"); db.DiscoverySource = sequelize.import(__dirname + "/discovery-source"); db.User.associate(db); db.Organization.associate(db); db.DiscoverySource.associate(db); db.sequelize = sequelize; db.Sequelize = Sequelize; sequelize.sync(); module.exports = db; 

您遇到错误是因为您尚未在DiscoveryMethod的classMethods定义associate 。 看起来你不需要调用它,所以只需要删除该行。