2017-07-10 2 views
1

Ich habe dieses Problem: müssen Daten auf einer Seite (page.hbs) verschiedenen Tabellen anzuzeigen. Ich benutze nodejs orm sequelize, mysql-Datenbank, Lenker. Wenn die Methode get auf die Seite page.hbs muss Daten aus zwei verschiedenen Tabellen abrufen. Hier ist mein Code:orm Fortsetzung Abfrage von zwei verschiedenen Tabellen in einer einzigen Seite laden

Modelle:

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); 
}); 
} 

Routen:

module.exports = function (app, passport) { 

app.get('/page_admin', isLoggedIn, authController.page_admin); 

............

Bitte helfen (ich verstehe nicht wirklich ho w um eine Abfrage zu bekommen, um auf zwei Tabellen zugreifen, wie ich es verstehe, müssen Sie authcontroller.js (Zusammenführungs-Anfragen)) Danke im Voraus für Ihre Hilfe zu beheben.

Antwort

0

Verwenden Promises

Promise.all([db.findAll(tableA), db.findAll(tableB)]) 
.then((data) => { 
    //data[0] is response from tableA find 
    // data[1] is from tableB 
}) 
Verwandte Themen