Verwenden von Express ohne Vorlagemotor
Frage
Ist es möglich, eine Express -Anwendung (Knoten) zu erstellen, ohne dass eine Vorlagenmotor wie Jade oder EJs erforderlich ist? Ich habe ein großes Projekt im letzten Jahr an der Universität und ich werde Knoten, Express, Socket.io, MongoDB und Websockets verwenden. Ich möchte mich nicht belasten, auch eine Vorlagensprache lernen zu müssen!
Standardmäßig verwendet Express Jade-t, -Template Fügen Sie Vorlagenunterstützung (jade | ejs) hinzu. Standard = jade
Lösung
Ist es möglich, eine Express -Anwendung (Knoten) zu erstellen, ohne dass eine Vorlagenmotor wie JADE oder EJS erforderlich ist
Ja, so ist es. Sie können einfach HTML verwenden. Oder verwenden Sie einfach EJs. EJS ist ein Superset von HTML.
Ich möchte mich nicht belasten, auch eine Vorlagensprache lernen zu müssen!
Sie können an einem Tag eine Vorlagensprache lernen. Es wird dir wirklich helfen. Mach es einfach. Das ist es wert.
Andere Tipps
Wenn Sie es nur vermeiden möchten, eine andere Vorlagensprache zu lernen, möchten Sie möglicherweise Unterstrichvorlagen versuchen. Sie sind nur JavaScript, was Sie sowieso lernen werden.
documentCloud.github.com/underscore/#template
Sie können es mit:
app.register('.html', {
compile: function(str, options){
var compiled = require('underscore').template(str);
return function(locals) {
return compiled(locals);
};
}
});
Der einfachste Weg, dies zu tun, wäre, die Standard -App.get ('/') zu ersetzen ... Zeile mit Folgendem. Dann geben Sie die ganze Magie in Index.html. Dies wird zumindest für eine einzelne Seiten -App recht gut funktionieren.
mit den folgenden
app.get('/', function(request, response) {
var readFile = "index.html";
var fileContents = fs.readFileSync(readFile);
response.send(fileContents.toString());
});
Die beste Option derzeit besteht darin, EJS (Engine) zu verwenden und HTML zu akzeptieren und zu rendern:
app.set('views', path.join(*__dirname*, 'views'))
app.set('view engine', 'ejs'); // template engine
app.engine('html', require('ejs').renderFile); // turn engine to use html
Hinweis: Alle Ihre Ansichten oder Vorlagen haben die .html
Verlängerung.