node.js - Sequelize 不为多对多关系创建连接表

标签 node.js sequelize.js

我没有看到为下面的代码创建连接表(对于 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/

相关文章:

javascript - TypeError : Cannot read property 'create' of undefined. 使用 sequelize 添加和登录用户

javascript - 符号原型(prototype)的字符串表示?

mysql - 我可以使用node.js将mysql查询结果调用到html文件中吗?

javascript - 使用 SSDP 显示网络中的所有设备

sequelize.js - 如何使用存储在变量中的值进行 RAW 查询

sql - 从 Sequelize 原始 SQL 查询返回大写列名

javascript - 序列化 AND 条件对象

javascript - Sequelize 获取上次更新或创造值(value)

javascript - 获取 2 个数组的差异,同时获取具体的边

javascript - 在多个类之间共享实例化变量的最佳方式?