我没有看到为下面的代码创建连接表(对于 UserEvents 为:Attendees)。当我尝试使用 event.setAttendees([user]) 将“参加者”添加到事件时,它会在用户表上设置 EventId(从而使其成为一对多关系)
在同步日志记录期间,不会创建具有“userevents”相关名称的表
var User = db.import(__dirname + '/user');
var Event = db.import(__dirname + '/event');
Event.hasMany(User, { as: 'Attendees'});
User.hasMany(Event);
db.sync({logging: console.log}).success(function() {
logger.info('DB Initialization successful!');
createDefaultData()
}).error(function(err) {
logger.error('DB Initialization failed!', err);
});
var createDefaultData = function() {
User.create({email:"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8ffbeafcfbcffbeafcfba1ece0e2" rel="noreferrer noopener nofollow">[email protected]</a>", firstName: "tolga", lastName: "ekmen", password: "qwer", location: "13424"});
}
最佳答案
当使用别名 ({ as: 'Attendees'}
) 时,您必须通过指定 through
告诉sequelize您想要一个连接表,它可以是字符串或模型:
Event.hasMany(User, { as: 'Attendees', through: 'user_events' });
User.hasMany(Event, { , through: 'user_events' });
关于node.js - Sequelize 不为多对多关系创建连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873164/