Sequelize.js Sequelize 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。我在库存和行

我有两个模型,其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。我在库存和行程模型中创建实例,然后使用以下代码将它们关联起来:

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