Javascript Sequelize有许多属性删除旧引用
我遇到了一个问题,即在创建新实例时,旧引用被删除。我将展示我的代码并给出一个例子,我做错了什么Javascript Sequelize有许多属性删除旧引用,javascript,sql,node.js,postgresql,sequelize.js,Javascript,Sql,Node.js,Postgresql,Sequelize.js,我遇到了一个问题,即在创建新实例时,旧引用被删除。我将展示我的代码并给出一个例子,我做错了什么 var Users=sequelize.define('Users'{ 身份证:{ 类型:DataTypes.INTEGER, 自动递增:真, primaryKey:对 }, 名称:DataTypes.STRING, 电子邮件:DataTypes.STRING }, { 分类方法:{ 助理:职能(模型){ hasMany(models.Interest,{as:'Interest'}); } } }
var Users=sequelize.define('Users'{
身份证:{
类型:DataTypes.INTEGER,
自动递增:真,
primaryKey:对
},
名称:DataTypes.STRING,
电子邮件:DataTypes.STRING
},
{
分类方法:{
助理:职能(模型){
hasMany(models.Interest,{as:'Interest'});
}
}
}
);
var Interest=sequelize.define('Interest'){
类别:DataTypes.STRING,
值:DataTypes.STRING
}, {
分类方法:{
助理:职能(模型){
Interest.belongtomany(models.Users,{通过:'UsersInterest'});
}
}
});
首先,我独自创造一种兴趣
models.Interest.create({
value:data.value,
类别:data.category
}).then(功能(新兴趣){
//好极了
});
`
//数据保存实例所需的信息
models.Users.create({
name: data.name,
email: data.email
}).then(function(newUser) {
//data interest contains the interest to find and add
for (var i = 0; i < data.interests.length; i++) {
models.Interest.findOne({
where: { value: data.interests[i].value, category: data.interests[i].category},
}).then(function(interest) {
newUser.addInterest(interest).then(function() {
}
});
});
}
});
models.Users.create({
name:data.name,
电子邮件:data.email
}).then(函数(新用户){
//数据兴趣包含要查找和添加的兴趣
对于(var i=0;i
`
当我创建第一个时,一切都很好,请看:
{“用户”:{“id”:1,“姓名”:“Chelo”,“电子邮件”:”chelo@intelli.com,“兴趣”:[{“价值”:“风筝冲浪”,“类别”:“运动”}]}
到现在为止,在我添加第二个之后,一切都很好
{“用户”:{“id”:1,“姓名”:“Chelo”,“电子邮件”:”chelo@intelli.com“,“利益”:[]}
{“用户”:{“id”:2,“姓名”:“CACA Cavazzoli”,电子邮件::”chelo@intelli.com,“兴趣”:[{“价值”:“风筝冲浪”,“类别”:“运动”}]}}
当我创建具有相同兴趣的第二个实例时,第一个实例中的兴趣将被删除
我做错了什么
请帮忙!!!我确实做错了什么。谢谢@LT-的评论。 我将给出我更改的正确代码:
var Users=sequelize.define('Users'){
身份证:{
类型:DataTypes.INTEGER,
自动递增:真,
primaryKey:对
},
名称:DataTypes.STRING,
电子邮件:DataTypes.STRING
},
{
分类方法:{
助理:职能(模型){
Users.belongtomany(models.Interest,{as:'interests',to:'UsersInterest'});
}
}
}
);
基本上,我在双方、用户和兴趣上都添加了belongtomany
希望能有所帮助。我确实做错了什么。谢谢@LT-的评论。 我将给出我更改的正确代码:
var Users=sequelize.define('Users'){
身份证:{
类型:DataTypes.INTEGER,
自动递增:真,
primaryKey:对
},
名称:DataTypes.STRING,
电子邮件:DataTypes.STRING
},
{
分类方法:{
助理:职能(模型){
Users.belongtomany(models.Interest,{as:'interests',to:'UsersInterest'});
}
}
}
);
基本上,我在双方、用户和兴趣上都添加了belongtomany
希望有帮助。如果你想做多对多。你需要在用户模型上做这件事,而不是在
有许多Users.belongTomany(models.Interest,{通过:'UsersInterest'});
@LT-谢谢!!将尝试它,如果它有效,你可以写它作为一个答案来赢得声誉。如果你试图做多对多。你需要在用户模型上这样做,而不是在有许多用户。belongTomany(models.Interest,{通过:'UsersInterest'})
@LT-谢谢!!我会试试看,如果有用的话,你可以把它写下来作为赢得声誉的答案。