Express.js, Node.js Jade - Siguiendo los tutoriales de ExpressJs.com y obtener errores
Pregunta
Bueno, estoy tratando de ingresar a Node.js / Express.js: sin embargo, he tenido algunos problemas pasando por la screencast, el primer problema, ahora resuelto, fue bastante obvio cuando fue visto (Express.js, node.js jade vim).
Sin embargo, ahora recibo los siguientes errores:
Express 500 SyntaxError: Unexpected identifier * at Object.Function (unknown source) * at Object.compile (/usr/local/lib/node/.npm/jade/0.10.6/package/lib/jade.js:230:10) * at ServerResponse._render (/usr/local/lib/node/.npm/express/2.3.2/package/lib/view.js:368:22) * at ServerResponse.render (/usr/local/lib/node/.npm/express/2.3.2/package/lib/view.js:234:17) * at Object. (/home/duncan/helloExpress/app.js:46:7) * at nextMiddleware (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:139:34) * at param (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:147:16) * at pass (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:155:10) * at Object.router [as handle] (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:161:6) * at next (/usr/local/lib/node/.npm/connect/1.4.0/package/lib/http.js:204:15)
Mi código app.js es el siguiente: declara la matriz de objetos de los usuarios
var users = [ { name: 'Duncan', email: 'duncan@email.com'}, { name: 'Bob', email: 'bob@email.com'} ];
y ... el bit que llama y hace que los nuevos usuarios. Jade
app.get('/users', function(req, res){ res.render('users', { users: users }); });
No sé si solo estoy siendo ciego hoy, pero realmente me gustaría que este ejemplo funcione.
NÓTESE BIEN. App.js 46: 7 es el char 7 'Res.render'. entre Res y Render. - Desde el mensaje de error.
El archivo ussers.jade es el siguiente:
h1 Users ul#users - each user in users li= user.name
Si me deshizo de: Usuario en usuarios y li = user.name
Hace que la página, tan pronto como la agrego, me da el mensaje de error anterior, y dice que hay algo mal con Res.Render ('Usuarios' - en el punto (46: 7).
PD. Estoy siguiendo el segundo tutorial aquí: http://expressjs.com/screencasts.html
Mi sangría:
[indent] - [indent] each user in users [indent][indent] li= [indent] user.name
Solución
Necesitas sangrar el li= user.name
otro nivel de cada declaración.
Esto debería funcionar:
h1 Users
ul#users
- each user in users
li= user.name
Otros consejos
Estaba recibiendo este error porque en mi diseño. Jade
Yo Tuve:
html(class="no-js" lang="en")
¡Y claramente ese ^^^ spot justo ahí le falta una coma!
Jade es genial y todo, pero Wow ese mensaje de error es malo para los principiantes.
Debería haber sido:
html(class="no-js", lang="en")