Sequelize&Express模型和关联设置

背景

我正在使用Sequelize v4.2和Express v4.15.2,并尝试设置模型并将它们相互关联。 我一直在努力寻找任何工作v4.x序列化的例子,即使在查看这个Express / Sequelize教程以及v4迁移文档 。

问题

目前我正在尝试设置我的初始模型和关联时收到下面的错误。

/Users/james/Sites/awesome-app/server/node_modules/sequelize/lib/associations/mixin.js:80 if (!target.prototype || !(target.prototype instanceof this.sequelize.Model)) { TypeError: Cannot read property 'prototype' of undefined at Function.<anonymous> (/Users/james/Sites/awesome-app/server/node_modules/sequelize/lib/associations/mixin.js:80:16) 

文件/代码

我的模型安装文件( index.js )看起来像…

 const fs = require('fs'); const path = require('path'); const Sequelize = require('sequelize'); const basename = path.basename(module.filename); const env = process.env.NODE_ENV || 'development'; const config = require(__dirname + '/../config/config.json')[env]; let db = {}; let sequelize = undefined; if (config.use_env_variable) { sequelize = new Sequelize(process.env[config.use_env_variable]); } else { sequelize = new Sequelize(config.database, config.username, config.password, config); } fs .readdirSync(__dirname) .filter((file) => { return (file.indexOf(".") !== 0) && (file !== 'index.js'); }) .forEach((file) => { const model = sequelize.import(path.join(__dirname, file)); db[model.name] = model; }); Object.keys(db).forEach(function(modelName) { if ('associate' in db[modelName]) { db[modelName].associate(db); } }); db.sequelize = sequelize; db.Sequelize = Sequelize; module.exports = db; 

和我的第一个模型( address.js )失败看起来像…

 module.exports = function(sequelize, DataTypes) { var Address = sequelize.define('Address', { street: DataTypes.STRING, city: DataTypes.STRING, state: DataTypes.STRING, zip: DataTypes.STRING, }); Address.associate = function(models) { Address.belongsTo(models.attendeeGroup, { onDelete: 'CASCADE', foreignKey: { allowNull: false }, }); } return Address; }; 

我期待设置我的数据库表,并将各种模型相互关联。 是否有另一个我缺less的设置?

我想要关联的模型被错误地命名为/大写。 我有Address.belongsTo(models.attendeeGroup, { attendeeGroup是camel case,但实际上它需要像AttendeeGroup这是我的另一个模型的名称大写。

一旦我改变这个模型名称,我的数据库就成功创build了。