2011-12-18 23 views
13

Después de aficionarme al estilo de plantilla de bigote.js, me gustaría seguir usándolo en node.js.¿Usando bigote.js junto con node.js?

He podido instalarlo y confirmar que está funcionando, pero no entiendo cómo usarlo en los archivos de plantilla.

¿Cómo cargo una plantilla llamada template.html y le aplico la magia del bigote en node.js?

Respuesta

15

fs.readFileSync es la versión sincrónica de fs.readFile, por lo que será de bloqueo. Aquí hay un ejemplo básico de cómo podría usar fs.readFile con bigote.js que devolvería la plantilla de bigote en la devolución de llamada.

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

Gracias por su respuesta. No noté que era sincrónico, pero hizo el trabajo. Bienvenido a SO BTW :) – Industrial

+0

Impresionante :) El ejemplo es solo una de las formas en que he incluido las plantillas de bigote; probablemente haya otras/mejores formas –

5

Terminé haciendo una pequeña función auxiliar para cargar un archivo de plantilla como una cadena;

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); 
Cuestiones relacionadas