mysql-从多个表中提取Sequelize信息
作者:互联网
我对新序列化还很陌生,但是我试图弄清楚如何从多个表(放置表和审阅表)中提取序列化信息并将它们呈现在同一页面上.审阅表具有用户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显示该地点的评论.
因此,要实现此目的,您可以将表关联建模为
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...
});
标签:sequelize-js,node-js,express,mysql 来源: https://codeday.me/bug/20191119/2032333.html