SyntaxError в моем выражении node.js Express - PullRequest
1 голос
/ 19 декабря 2011

Итак, я пытаюсь следовать этому обучающему видео:

http://nodetuts.com/tutorials/13-authentication-in-express-sessions-and-route-middleware.html#video

и поэтому у меня есть этот код в верхней части моего routes/index.js файла:

var todo = require('../todo'); //line 1
//line 2
//new session //line 3
exports.newSession = function (req, res) { //line 4
  res.render('sessions/new', { //**line 5**
    locals: {
      redir: req.query.redir
    }
  });
};

но, когда я запускаю свое приложение и запускаю обработчик routes.newSession, я получаю эту ошибку:

500 SyntaxError: Unexpected identifier
at Object.Function (unknown source)
at Object.compile (/home/admin73464/todo/node_modules/jade/lib/jade.js:161:8)
at Function.compile (/home/admin73464/todo/node_modules/express/lib/view.js:65:33)
at ServerResponse._render (/home/admin73464/todo/node_modules/express/lib/view.js:414:18)
at ServerResponse.render (/home/admin73464/todo/node_modules/express/lib/view.js:315:17)
at /home/admin73464/todo/routes/index.js:5:6
at callbacks (/home/admin73464/todo/node_modules/express/lib/router/index.js:272:11)
at param (/home/admin73464/todo/node_modules/express/lib/router/index.js:246:11)
at pass (/home/admin73464/todo/node_modules/express/lib/router/index.js:253:5)
at Router._dispatch (/home/admin73464/todo/node_modules/express/lib/router/index.js:280:4)

Я не вижу синтаксических ошибок в моем файле index.js;вы?Должен ли я искать где-то еще?

Заранее спасибо!

РЕДАКТИРОВАТЬ: вот содержимое моего файла views / session / new.jade:

h1 Login
form(action='/sessions', method='POST')
  input(type='hidden', name='redir', value=redir)
  p
    label(for='login') Login:
    input(type='text' name='login', id='login')
  p
    label(for='password') Password:
    input(type='password' name='password', id='password')
  p
    input(type='submit')

IЯ почти уверен, что скопировал именно то, что написал Педро.

ВТОРОЕ РЕДАКТИРОВАНИЕ: Я также использую файл layout.jade.Вот оно:

!!!
html
  head
    title Our ToDo App
    link(rel='stylesheet', href='/stylesheets/style.css')
  body!= body

По предложению респондента я попытался удалить все (и все, кроме первой) строки из new.jade.Я получил ту же ошибку.Я также попытался удалить все строки из layout.jade, а также удалить только последнюю строку (body! = Body).Та же ошибка.

Спасибо за все ответы до сих пор, я так рад за помощь и предложения, которые вы мне дали.

ТРЕТЬЕ РЕДАКТИРОВАНИЕ: Я разместил свое приложениепапка и файлы в

http://www.miramontestequila.com/todo/

Я использую структуру каталогов по умолчанию в Express и поэтому не требует пояснений.

Ответы [ 3 ]

8 голосов
/ 20 декабря 2011

В вашем файле new.jade есть строки

input(type='text' name='login', id='login')
input(type='password' name='password', id='password')

. Вам не хватает запятых между type и name атрибутами.Помните, что в Jade вы должны ставить запятые между атрибутами HTML.

1 голос
/ 19 декабря 2011

Можете ли вы изменить содержимое index.js следующим образом и скажите мне, если это исправит ситуацию:

exports.newSession = function (req, res) {
  var redir = (req.query && req.query.redir) || '';
  res.render('sessions/new', { redir: redir });
};
1 голос
/ 19 декабря 2011

Может быть, что-то не так с вашим sessions/new.jade представлением?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...