Wie Rendern von mehreren .ejs Dateien in verschachtelten form in Node.js und Express?
Wie kann ich das Rendern mehrerer .ejs
Dateien in einer verschachtelten form?
So, ich habe die folgende Datei:
var mysql = require('mysql');
var ejs = require('ejs');
exports.index = function(req, res){
if (req.method=='POST'){
var connection = mysql.createConnection({user:'root', password:'root', database:'testdb'});
var name = req.param('name');
connection.query('select * from table_name where name = ?', name, function(err, rows, fields){
if(err) throw err;
res.render('index', {
title: 'title', content: res.render('index2', {data:rows})
});
});
}
});
Wo index.ejs
besteht aus sehr grundlegenden html-Tags (also html -, head -, body -, und eine p
tag) und haben <%- content %>
in ihm, wo der Inhalt ist angenommen zu sein, gerendert von einem anderen .ejs-Datei, die keine html -, head-oder body-tag und ist nur davon ausgegangen, dass Rendern der Inhalte und des Titels. Allerdings, wenn ich Zugriff auf diese Datei per POST-request und versucht, die render-Dateien und dann ausgecheckt der ausgegebenen HTML-Datei in meinem browser, der Inhalt Bestand nur aus index2.ejs
- Datei, die keine html -, body -, head-tag.
So was bin ich? Und wenn ich will, um eine Javascript-Bibliothek, die von <script src='some_file.js'></script>
, sollte ich hinzufügen, ein weiteres rendering-Eigenschaft, wenn ich versuche zu Rendern in index2.ejs
Datei...richtig?
InformationsquelleAutor Blaszard | 2013-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten, ich glaube, Sie sind verwirrt darüber, wie
res.render
betreibt. Nach der docs:was erklärt, warum Sie sehen nur die Inhalte von index2.ejs in Ihre HTML-Seite.
Nun, es gibt mehrere Möglichkeiten, Ihr Ziel zu erreichen, das verschachteln von views in views. Ausgehend von Express 3.x, die Sie verwenden müssen
include
.In diesem Fall, Sie können schreiben Sie Ihre Ansichten wie diese:1 - Definieren Sie eine überschrift.ejs-Datei, die würde so Aussehen Beispiel.
2 - Definieren Sie eine Fußzeile.ejs. das würde dann so Aussehen andere Beispiel.
3 - In-Ihren-index2.ejs, gehören diese beiden Dateien, wie diese:
Eine zweite Methode ist die Verwendung ejs-einheimischen, das ermöglicht das einfügen von beliebigen Ansicht nur durch die Angabe Ihrer Pfad:
Dein index1.ejs haben Sie:
Der Vorteil dieser Methode ist, die Sie übergeben können zusätzliche Werte zu Ihrer Ansicht verwenden Sie das zusätzliche Objekt. Überprüfen Sie heraus die ejs-einheimischen github-Seite für weitere details.
InformationsquelleAutor verybadalloc
Update : ejs-mate Express 4.x die einheimischen für layout, teilweise.
https://www.npmjs.com/package/ejs-mate
cf https://scotch.io/tutorials/use-ejs-to-template-your-node-application
InformationsquelleAutor nico6
gut für standard-HTML-wie
head
,footer
,sidebars
oder was auch immer ..es ist Partials Beispiel erklärt alles ..
InformationsquelleAutor Gntem