En utilisant express sans moteur de modèle
Question
Est-il possible de créer une application expresse (noeud) sans avoir besoin d'un moteur de template tels que le jade ou EJS. J'ai un grand projet de dernière année à l'université et je vais être en utilisant nœud, exprimer, socket.io, MongoDB et websockets. Je ne veux pas me charge d'avoir à apprendre une langue templating aussi!
Par défaut Express utilise jade -t, prise en charge du modèle --template add (jade | SEJ). default = jade
La solution
Est-il possible de créer une application expresse (noeud) sans avoir besoin d'un moteur de template tels que le jade ou EJS
Oui il est. Vous pouvez simplement utiliser HTML. Ou tout simplement utiliser EJS. EJS est un sur-ensemble du langage HTML.
Je ne veux pas me charge d'avoir à apprendre une langue templating aussi!
Vous pouvez apprendre une langue Templating en un jour. Ça va vraiment vous aider. Simplement fais-le. Il vaut le coup.
Autres conseils
Si vous voulez seulement pour éviter d'apprendre une autre langue de modèle, vous voudrez peut-être donner underscore modèles d'essayer. Ils sont juste javascript, que vous allez être apprendre de toute façon.
documentcloud.github.com/underscore/#template
Vous pouvez le configurer avec:
app.register('.html', {
compile: function(str, options){
var compiled = require('underscore').template(str);
return function(locals) {
return compiled(locals);
};
}
});
meilleure façon de faire ce serait de remplacer le app.get par défaut ( « / ») ... en ligne avec ce qui suit. Ensuite, mettre toute la magie dans index.html. Cela permettra au moins fonctionner assez bien pour une application unique page.
avec les éléments suivants
app.get('/', function(request, response) {
var readFile = "index.html";
var fileContents = fs.readFileSync(readFile);
response.send(fileContents.toString());
});
La meilleure option est en ce moment à EJS d'utilisation (moteur) et le configurer pour accepter et rendre html:
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
Remarque: Tous vos vues ou modèles ont l'extension .html