从多个表中提取 Sequelize 信息

Pulling Sequelize Info from multiple tables

我对新的续集还很陌生,但我想弄清楚如何从多个 table 中提取续集信息(放置和查看 table )并将它们呈现在同一页。评论 table 有一个用户 ID 和一个地点 ID。我已经尝试了原始查询和下面代码的不同变体,但都无济于事。在这种情况下我应该使用哪种语法?

User.hasMany(Review);
Review.belongsTo(User);

User.hasMany(Place);
Place.belongsTo(User);

Place.hasMany(Review);
Review.belongsTo(Place);



app.get('/place/:category/:id', function(req, res){
  var id = req.params.id;
  Place.findAll({
    where : {id : id},
    include: [{
      model: [Review]
    }]
  }).then(function(reviews){
    res.render('singular', {reviews});
  });

});

根据您的 API 路线定义,我假设您正在尝试根据地点 ID 显示对地点的评论。

因此,要实现这一点,您可以将 table 关联建模为

Places.hasMany(Reviews);
Users.hasMany(Reviews);

Review.belongsTo(Places);
Review.belongsTo(Users);

现在,基于此关联,您可以执行如下查询:

Places.findById(req.params.id, {
    include: [{
        model: Reviews,
        required: false,
        include: [{
            model: Users,
            required: false
        }]
    }]
}).then(function(place) {
    // The rest of your logic here...
});