Sequelize hasMany / belongsToMany和实例方法

我正在写一个CRUD来pipe理SequelizeJS(版本2.0.0-rc6)和ExpressJS系统中的用户。 一个用户可以在多个用户组中,一组用户可以有多个用户。 问题是,当我尝试添加用户到一组用户时,sequelize正在抛出以下错误:

Possibly unhandled TypeError: Cannot call method 'replace' of undefined at Object.module.exports.removeTicks (/home/app/node_modules/sequelize/lib/utils.js:512:14) at Object.module.exports.addTicks (/home/app/node_modules/sequelize/lib/utils.js:508:29) at Object.module.exports.QueryGenerator.quoteIdentifier (/home/app/node_modules/sequelize/lib/dialects/postgres/query-generator.js:881:22) at generateJoinQueries (/home/app/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1100:72) at Object.<anonymous> (/home/app/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1165:29) at Array.forEach (native) at Object.module.exports.QueryGenerator.selectQuery (/home/app/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1164:25) at module.exports.QueryInterface.select (/home/app/node_modules/sequelize/lib/query-interface.js:679:35) at null.<anonymous> (/home/app/node_modules/sequelize/lib/model.js:728:34) 

模型/用户group.js

 module.exports = function(sequelize, DataTypes) { var UserGroup = sequelize.define("UserGroup", { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: DataTypes.STRING(100), allowNull: false } }, { tableName: "user_group", classMethods: { associate: function(models) { UserGroup.hasMany(models.User, { through: "user_to_user_group" }); } } }); return UserGroup; }; 

模型/ user.js的

 module.exports = function(sequelize, DataTypes) { var User = sequelize.define("User", { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, first_name: { type: DataTypes.STRING(100), allowNull: false }, last_name: { type: DataTypes.STRING(100), allowNull: false }, cpf: DataTypes.STRING(11), rg: DataTypes.STRING(10), birth_day: DataTypes.DATE, password: { type: DataTypes.STRING(100), allowNull: false }, active: { type: DataTypes.BOOLEAN, defaultValue: false } }, { tableName: "user", classMethods: { associate: function(models) { User.hasMany(models.Email); User.hasMany(models.Phone); User.hasMany(models.Address); User.belongsToMany(models.UserGroup, { through: "user_to_user_group" }); } }, }); return User; }; 

路线/ user.js的

 router.post('/user/add', function(req, res, next) { var data = req.body; model.User.build(data.user) .save() .then(function(newUser){ async.map(data.user.user_group_ids, function(userGroupId, callback){ model.UserGroup.find({ where: { id: userGroupId } }) .then(function(userGroup) { // I'm getting here without any trouble userGroup.addUser(newUser) // this line throws the error .then(function(){ callback(null, userGroup); }); }); }, function(error, userGroups){ if (!error) { res.status(200).send('User created!'); } else { res.status(500).send('Something bad happened!'); } }); }) .catch(function(error){ console.log(error); }); });