Express.js, Node.js Jade - Après les expressjs.com tutoriels, et obtenir des erreurs
Question
Eh bien, je suis en train d'entrer dans Node.js / express.js - mais j'ai eu quelques problème en passant par le screencast, le premier numéro, maintenant résolu, était assez évident quand il a été repéré ( express.js, Node.js Jade vim ).
Cependant, je reçois maintenant les erreurs suivantes:
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)
Mon app.js code est le suivant: Déclarer le tableau d'utilisateurs de l'objet
var users = [ { name: 'Duncan', email: 'duncan@email.com'}, { name: 'Bob', email: 'bob@email.com'} ];
... le bit que les appels et rend le nouveau users.jade
app.get('/users', function(req, res){ res.render('users', { users: users }); });
Je ne sais pas si je suis juste aujourd'hui aveugle, mais je voudrais vraiment obtenir ce travail exemple.
NB. app.js 46: 7 est la «res.render CHAR 7 est le. entre res et rendre. - du message d'erreur.
Le fichier users.jade est comme suit:
h1 Users ul#users - each user in users li= user.name
Si je me débarrasser de: utilisateur utilisateurs et li = user.name
il rend la page, dès que je les ajoute, il me donne le message d'erreur ci-dessus, et dit qu'il ya quelque chose de mal avec res.render ( « utilisateurs » - sur le point (46: 7)
PS. Je suis le deuxième tutoriel ici: http://expressjs.com/screencasts.html
Mon indentation:
[indent] - [indent] each user in users [indent][indent] li= [indent] user.name
La solution
Vous devez le retrait li= user.name
un autre niveau bas de la chaque instruction.
Cela devrait fonctionner:
h1 Users
ul#users
- each user in users
li= user.name
Autres conseils
je recevais cette erreur, car dans mon layout.jade
a:
html(class="no-js" lang="en")
ET CLAIREMENT QUE ^^^ DROIT SPOT IL MANQUE A VIRGULE !!!!
Jade est grande et tout, mais wow ce message d'erreur est mauvais pour les débutants.
Aurait dû être:
html(class="no-js", lang="en")