Node.js Sequelize object.add是否不返回id?

Node.js Sequelize object.add是否不返回id?,node.js,sqlite,sequelize.js,Node.js,Sqlite,Sequelize.js,我正在将Sequelize 3.27.0与NodeJS 6.7.0和Sqlite 3一起使用 我有“多对多”关系,并试图创建一个新的关系,但这样做时,我没有看到返回的id。我创建了一个简单的测试用例,试图了解我可能做错了什么。有人能指出我做错了什么吗: var User = sequelize.define('user', { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncr

我正在将Sequelize 3.27.0与NodeJS 6.7.0和Sqlite 3一起使用

我有“多对多”关系,并试图创建一个新的关系,但这样做时,我没有看到返回的id。我创建了一个简单的测试用例,试图了解我可能做错了什么。有人能指出我做错了什么吗:

var User = sequelize.define('user', {
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    }
});

var Project = sequelize.define('project', {
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    }
});

var UserProject = sequelize.define('user_project', {
  id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
  },
  role: Sequelize.STRING,
});

User.belongsToMany(Project, { through: UserProject });
Project.belongsToMany(User, { through: UserProject });

sequelize.sync({}).then(function () {
    var userX;

    User.create({}).then(function (user) {
        userX = user;
        return Project.create({});
    }).then(function (project) {
        return userX.addProject(project);
    }).then(function (userProject) {
        console.log(userProject.id);
    });
});

如您所见,UserProject的id确实将“autoIncrement”设置为true。运行上述命令的结果是id的值“未定义”。

虽然我还没有找到具体的答案,但我发现最好的答案是“UserProject”表应该被视为“映射表”,因此条目实际上不需要一个不同的id

这意味着表条目只有在与源表或目标表结合使用时才有意义。它的存在只是为了定义关联,因此在出现“”类型错误时值得注意