Express.js, Node.js Jade - Следуя инструкциям на expressjs.com и получая ошибки - PullRequest
1 голос
/ 01 мая 2011

Ну, я пытаюсь попасть в Node.js / Express.js - однако у меня было несколько проблем, проходящих через скринкаст, первая проблема, теперь решенная, была довольно очевидной, когда она была обнаружена ( Express.js, Node.js Jade vim ).

Однако теперь я получаю следующие ошибки:

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)

Мой код app.js выглядит следующим образом:Объявите массив пользователей объекта

var users = [
    { name: 'Duncan',   email: 'duncan@email.com'},
    { name: 'Bob',  email: 'bob@email.com'}
];

и ... бит, который вызывает и отображает новых пользователей. Jade


app.get('/users', function(req, res){
  res.render('users', {
        users: users
  });

});

Я не знаю, просто ли ясегодня ослеп, но мне бы очень хотелось, чтобы этот пример работал.

Примечание.app.js 46: 7 - это «res.render» char 7 - это.между разрешением и рендерингом.- из сообщения об ошибке.

Файл users.jade выглядит следующим образом:

h1 Users
ul#users
    -   each user in users
    li= user.name

Если я избавлюсь от: user в users и li = user.name

, он отобразит страницу, как только я их добавляю, мне выдается сообщение об ошибке, описанное выше, и говорится, что с res.render ('users' - точка (46: 7). что-то не так.

PS. I 'после второго урока здесь: http://expressjs.com/screencasts.html

Мой отступ:

[indent] - [indent] each user in users
[indent][indent] li= [indent] user.name

Ответы [ 2 ]

4 голосов
/ 01 мая 2011

Вам нужно отступить на li= user.name еще один уровень ниже каждого оператора.

Это должно работать:

h1 Users
ul#users
  - each user in users
    li= user.name
0 голосов
/ 09 марта 2013

Я получаю эту ошибку, потому что в моем layout.jade

У меня было:

html(class="no-js" lang="en")

И ЯВНО, ЧТО ^^^ ПЯТНО ПРАВИЛЬНО, ПУТЕШЕСТВУЕТ КОММА !!!!
Джейд хороша и все такое, но это сообщение об ошибке плохо для начинающих.

Должно было быть:

html(class="no-js", lang="en")
...