gpt4 book ai didi

node.js - Sequelize object.add 不返回 id?

转载 作者:行者123 更新时间:2023-12-03 22:41:36 27 4
gpt4 key购买 nike

我在 NodeJS 6.7.0 和 Sqlite 3 中使用 Sequelize 3.27.0。

我有“多对多”关系并试图建立新关系,但这样做时我看不到 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。

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

关于node.js - Sequelize object.add 不返回 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42017438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com