2011-09-06 15 views
9

Es posible crear una aplicación express (nodo) sin la necesidad de un motor de plantilla como jade o ejs. Tengo un gran proyecto de último año en la universidad y voy a utilizar node, express, socket.io, mongoDB y websockets. ¡No quiero cargarme con tener que aprender un lenguaje de plantillas también!Uso de Express sin plantilla de motor

Por expreso por defecto utiliza el jade -t, --template añadir soporte de plantilla (jade | ejs). por defecto = jade

Respuesta

12

¿Es posible crear una solicitud expresa (nodo) sin la necesidad de un motor de plantillas como el jade o ejs

sí lo es. Puedes simplemente usar HTML. O simplemente usa EJS. EJS es un superconjunto de HTML.

¡No quiero cargarme con tener que aprender un lenguaje de plantillas también!

Puedes aprender un lenguaje de plantillas en un día. Realmente te va a ayudar. Solo hazlo. Vale la pena.

+0

siempre tiene una respuesta cuando se trata de algo relacionado con JavaScript, y sus respuestas son siempre al grano e informativas. ¡Gracias! – Jack

+1

@JackBrown [Puede venir a chatear para preguntas rápidas] (http://chat.stackoverflow.com/rooms/642/node-js) – Raynos

+5

Creo que no se trata de aprender un nuevo lenguaje de plantillas, solo creo que usar un motor de plantillas estropearía tus páginas html. Imagínese que si tiene muchas páginas html bien diseñadas, tiene que traducirlas a un formato de plantilla totalmente nuevo, eso es malo. – silent

3

Si solo quiere evitar aprender otro lenguaje de plantilla, puede probar las plantillas de subrayado. Son solo javascript, que aprenderás de todos modos.

documentcloud.github.com/underscore/#template

Puede configurarlo con:

app.register('.html', { 
    compile: function(str, options){ 
     var compiled = require('underscore').template(str); 
     return function(locals) { 
      return compiled(locals); 
     }; 
    } 
}); 
1

La manera más fácil de hacer esto sería para reemplazar el app.get por defecto ('/') ... de acuerdo con lo siguiente. Luego ponga toda la magia en index.html. Esto al menos funcionará bastante bien para una aplicación de una sola página.

con la siguiente

app.get('/', function(request, response) { 
var readFile = "index.html"; 
var fileContents = fs.readFileSync(readFile); 

response.send(fileContents.toString()); 
}); 
1

La mejor opción en este momento es usar EJS (motor) y configurarlo para aceptar y representar 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 

Nota: Todos los puntos de vista o las plantillas tienen la extensión .html.

Cuestiones relacionadas