Sequelize.js Sequelize 1:m关联:集合方法正在删除以前的关联?
我有两个模型,其1:M关联定义如下:Sequelize.js Sequelize 1:m关联:集合方法正在删除以前的关联?,sequelize.js,Sequelize.js,我有两个模型,其1:M关联定义如下: var inventory = sequelize.define("Inventory",{**model definition**}; var trip = sequelize.define("Trip",{**model definition**}; Trip.hasMany("Inventory", {as:"Items"}); Inventory.belongsTo("Trip"); 这按照我的计划在库存模型中创建了一个Tripid。我在库存和行
var inventory = sequelize.define("Inventory",{**model definition**};
var trip = sequelize.define("Trip",{**model definition**};
Trip.hasMany("Inventory", {as:"Items"});
Inventory.belongsTo("Trip");
这按照我的计划在库存模型中创建了一个Tripid。我在库存和行程模型中创建实例,然后使用以下代码将它们关联起来:
app.post('/api/trip/inventory/new/:trip_id', function(req,res){
var new_item = req.body;
var trip_id = req.params.trip_id;
db.Inventory.create(new_item).then(dbItem => {
db.Trip.findOne({
where : {id:trip_id}
}).then(dbTrip =>{
dbTrip.setItems(dbItem);
res.json(dbItem);
})
})
})
这是可行的,但每次我添加一个新项目并将其关联到同一行程时,先前关联项目的tripId将被删除,并在设置新项目的tripId时变为null。如何对库存模型中的多个项目使用setItems?提前感谢。这是正常行为,因为您使用了magicset方法(dbTrip.setItems(dbItem)) 发件人: 因此,只需将您的设置项替换为附加项
user.addPicture(p) // Add a single picture
user.setPictures([p1, p2]) // Associate user with ONLY these two picture, all other associations will be deleted
user.addPictures([p1, p2]) // Associate user with these two pictures, but don't touch any current associations