2012-01-11 18 views
16

He estado jugando un poco con Node.js. Recientemente comencé a jugar con Express y he estado configurando una aplicación básica. Quería usar Handlebars como mi motor de creación de plantillas de visualización, pero estoy chocando contra una pared: no pude ubicar la vista "index.html"NodeJS + Express + manubrios: no se pudo ubicar la vista "index.html"

Tengo index.html en el mismo directorio que app.js y creo que el El siguiente código no tendría problemas para localizar index.html ...

He buscado, pero parece que los ejemplos completos de cualquier cosa aparte del jade son raros ... ¿Alguien tiene experiencia con este combo?

¡Gracias de antemano!

var express = require('express') 
    , app = express.createServer(); 

app.configure(function(){ 
    app.set('view engine', 'handlebars'); 
    app.set("view options", { layout: false }) 
}); 



app.get('/', function(req, res){ 

    var data = { 
     name: "Ford Prefect", 
     home: "a small planet somewhere in the vicinity of Betelgeuse" 
    } 

    res.render('index.html', data); 
}); 

app.listen(3000); 

Actualización:

me faltaba:

app.set('views', __dirname + '/'); 
app.register('.html', require('handlebars')); 

en mi config ... parecería que el registro de '.html' es muy importante, ya que especifica el Asociación de manubrios con .html ...

Espero que esto ayude a alguien ...

Como SOY novato, no puedo responder mi propia pregunta durante 7 horas, pero si alguien necesita el ejemplo completo de trabajo, puedo publicarlo mañana ...

+4

Es "Ford Prefect" – fent

+1

Puede considerar nombrar sus archivos .handlebars en lugar de .html para que sea obvio que no es un archivo html simple. Pronto [.hbs] (https://github.com/wycats/handlebars.js/issues/174) podría funcionar también? – MyGGaN

Respuesta

17

Por defecto, se verá en una carpeta llamado views del directorio que es el script. Si usa un directorio diferente, debe especificarlo.

app.set('views', __dirname + '/views'); 

Express también debería decirle más información acerca de dónde se está tratando de encontrar la vista, que debe ayudar a saber exactamente donde se busca.

+0

Exactamente. A decir verdad, llegué a esta conclusión en dos pasos para mí - línea 1 y luego línea 2 en la Actualización ... Primero descubrí la línea 1, que me llevó a encontrar Error: No se puede encontrar el módulo 'html' que , como dice la historia, la línea 2 se resolvió :) Espero que mi locura ayude a alguien. – mattezell

Cuestiones relacionadas