2011-12-18 5 views
13

Dopo essermi appassionato con lo stile modello mustache.js, vorrei continuare ad usarlo su node.js.Utilizzo di mustache.js insieme a node.js?

Sono stato in grado di installarlo e confermare che funziona, ma non riesco proprio a capire come usarlo per i file di modello.

Come caricare un modello chiamato template.html e applicare la magia dei mozzi all'interno di node.js?

risposta

15

fs.readFileSync è la versione sincrona di fs.readFile, quindi sarà il blocco. Ecco un esempio di base di come è possibile utilizzare fs.readFile con mustache.js che restituisce il modello di baffi nel callback.

var object_to_render = {key: "value", ...}; 

fs.readFile(path_to_mustache_template, function (err, data) { 
    if (err) throw err; 
    var output = Mustache.render(data.toString(), object_to_render); 

    // do something with output... 
}); 
+0

Grazie per la risposta. Non ho notato che era sincrono, ma ha fatto il lavoro. Benvenuti in SO BTW :) – Industrial

+0

Impressionante :) L'esempio è solo uno dei modi in cui ho incluso i modelli di baffi; ci sono probabilmente altri/modi migliori –

5

Ho finito per creare una piccola funzione di supporto per caricare un file di modello come stringa;

function loadTemplate(template) { 
    return this.fs.readFileSync(app.set('views') + template+ '.html').toString(); 
} 

var html = Mustache.to_html(loadTemplate('myView'), {key: "value", ...}); 

res.send(html);