2011-12-19 21 views
1

だから私はこのチュートリアルビデオ従うことをしようとしている:にSyntaxErrorエクスプレスコード

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ファイルに構文エラーはありません。あなたは?私は別の場所を見ているべきですか?

ありがとうございます!

編集:ここでは私の意見/セッション/ 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') 

私はペドロが書いたまさにコピーかなり確信しています。

第2編集: 私はlayout.jadeファイルも使用しています。ここでは、次のとおりです。回答者の提案パー

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

、私はすべての(と最初以外のすべて)new.jadeから行を削除しようとしました。私は同じエラーがあります。 また、layout.jadeからすべての行を削除して、最後の行(body!= body)だけを削除しようとしました。同じエラー。

これまでのすべての回答をありがとう、私はあなたにこれまで私に与えてくれた助けと提案をとてもうれしく思っています。

THIRD EDIT: 私は

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

で私のアプリのフォルダやファイルを掲載しました私が使用しているディレクトリ構造は、Expressのデフォルトであり、したがって、自己説明する必要があります。

+1

また、翡翠ファイルの内容を貼り付けてください。 – alessioalex

+1

あなたは地元では必要ありません:{}もう、ちょうどキー:それの中の値 – Mike

答えて

7

を、あなたはあなたが不足しているライン

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

を持っていますコンマはtypenameの間です。 Jadeでは、HTML属性の間にカンマを挿入する必要があることを覚えておいてください。

+0

ああ、私は慎重に私の玉ファイルを見ていたはずです。 助けてくれてありがとう!私はヒスイのシンタックスを見るのに慣れていないと思いますが、これは今あなたが指摘している明らかな問題です。 – Aaron

1

sessions/new.jadeビューで何か問題があると思われますか?

+0

それは別の可能性です。私の編集を参照してください。 – Aaron

1

あなたがそうのようなindex.jsの内容を変更し、これは物事修正する場合を教えてもらえます:あなたのnew.jadeファイルで

exports.newSession = function (req, res) { 
    var redir = (req.query && req.query.redir) || ''; 
    res.render('sessions/new', { redir: redir }); 
}; 
+0

変更を加えました。 同じSyntaxErrorが発生しますが、行番号は6になります(まだres.render行)。 – Aaron

+0

それはあなたの玉のビューファイルから絶対に来ています。私のアドバイスは、ビューからすべてを削除し、行ごとに追加してテストすることです(ビューに数行しかないので、すばやく簡単です)。 – alessioalex

+0

new.jadeファイルのすべての行を削除したところ、同じ問題が発生しました。 layout.jadeファイルと同じことをしました(元の投稿への編集を参照) – Aaron