我有这个问题:需要在一个页面(page.hbs)上显示不同的表格数据。我使用的是nodejs orm sequelize,mysql数据库,Handlebars。当页面page.hbs的get方法需要从两个不同的表中获取数据时。这是我的代码:
模型:
var roof_type = sequelize.define('roof_type', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
allowNull: false
},
description: {
type: DataTypes.STRING(50),
allowNull: true
}
});
return roof_type;
var garret_type = sequelize.define('garret_type', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
allowNull: false
},
description: {
type: DataTypes.STRING(50),
allowNull: true
}
});
return garret_type;
authcontroller.js:
exports.page_admin = function (req, res) {
db.roof_type.findAll({
description: 'description ASC'
}).then(function (data) {
var hbsObject = {
roof_types: data
};
res.render('page_admin', hbsObject);
});
}
exports.page_admin = function (req, res) {
db.garret_type.findAll({
description: 'description ASC'
}).then(function (data) {
var hbsObject = {
garret_types: data
};
res.render('page_admin', hbsObject);
});
}
路线:
module.exports = function (app, passport) {
app.get('/page_admin', isLoggedIn, authController.page_admin);
............
请帮忙(我真的不明白如何获取一个查询来访问两个表,因为据我所知你需要修复authcontroller.js(合并请求))谢谢你的帮助。
答案 0 :(得分:1)
使用Promises
Promise.all([db.findAll(tableA), db.findAll(tableB)])
.then((data) => {
//data[0] is response from tableA find
// data[1] is from tableB
})