2012-04-17 10 views
15

Me encontré con un problema muy básico, pero parece que no puedo encontrar la respuesta. Estoy trabajando con node.js, express y yo estoy tratando de pasar una variable local en la vista como esta:Express + jade: variable local no disponible en la vista

app.get('/', function(req, res){ 
    res.render("index", {locals: { 
    title: "Blog", 
    } 
    }); 
}); 

Mi vista del índice es igualmente simple:

h1= title 

Pero por alguna razón, sigue apareciendo este error como si nunca se pasara la variable local:

500 ReferenceError: /home/spartan/Node_Projects/test/views/index.jade:1 > 1| h1= title 2| title is not defined 
> 1| h1= title 
    2| title is not defined 

¡No sé lo que estoy haciendo mal! Aquí están las versiones que estoy usando:

  • Express: 3.0.0alpha1
  • Node.js: 0.6.14
  • Jade: 0.24.0

Alguien por favor ayuda por lo que en realidad se puede pasar al nodo de aprendizaje + expresar!

Respuesta

28

debe pasar la variable sin el locals. Esto es probablemente nuevo en el expreso 3.0.0

res.render("index", {title: "Blog"}); 
+1

Muchas gracias, ¡esto fue todo! Solo estaba siguiendo un viejo tutorial y no tenía idea de lo que estaba mal. – aeyang

4

h1 = title intenta evaluarlo localmente, el título que envió y aquel es diferente. Para entender la diferencia, véase:

- var title = 'my title' // - allows writing code 
h1 = title 

El que se debe utilizar es:

h1 #{title} 
+0

Gracias por decirme eso, entiendo esa diferencia ahora. Estaba tan seguro de que era eso, pero desafortunadamente, cuando cambié mi vista a 'h1 # {title}', me dio exactamente el mismo mensaje de error ... ¿Alguna idea? – aeyang

1

Here is a response que hice hace unas horas a una pregunta smiliar (+ reparto con diseño). Muestra cómo pasar datos cuando se renderiza. (Express 3.0.0 complient)

+0

Gracias, tu respuesta también tenía la respuesta que estaba buscando. – aeyang

Cuestiones relacionadas