【发布时间】:2016-03-06 17:18:19
【问题描述】:
如何在表users 和user_friend 之间建立正确的关系?我想向user_friends 表提出加入请求。
var User = db.define('users', {
userId: {
primaryKey: true,
autoIncrement: true,
type: Sequelize.INTEGER,
allowNull: false,
field: 'user_id'
},
login: {
type: Sequelize.STRING,
isUnique: true
}
}, {
freezeTableName: true,
classMethods: {
associate: function (models) {
User.hasMany(models.UserFriend, { as: 'Friends', foreignKey: 'user' });
}
}
});
var UserFriend = db.define('user_friend', {
user: {
type: Sequelize.INTEGER,
allowNull: false,
references: {
model: 'users',
key: 'user_id'
}
},
friend: {
type: Sequelize.INTEGER,
allowNull: false,
references: {
model: 'users',
key: 'user_id'
}
}
}, {
freezeTableName: true,
classMethods: {
associate: function (models) {
UserFriend.belongsTo(models.User, { foreignKey: 'user_id', targetKey: 'user' });
UserFriend.belongsTo(models.User, { foreignKey: 'user_id', targetKey: 'friend' });
}
}
});
User.friends = function (id) {
return UserFriend.findAll({
where: { user: id },
include: [
{ model: User }
]
});
};
当我调用 User.friends(1) 时,它会抛出一个错误
Unhandled rejection Error: users is not associated to user_friend!
【问题讨论】:
标签: javascript node.js database sequelize.js