2016-07-19 20 views
1

私はexpressportjsを使用して私のエクスプレスアプリでユーザー認証を行っています。私はスクリプトタグに変数がありません

を以下しているユーザパラメータ私のヒスイのテンプレートで今すぐ

router.get('/', function(req, res, next) { 
    res.render('index', { user: req.user }); 
}); 

でindex.jadeテンプレートをレンダリングするよ、私のインデックスルート上に

:しかし、私は奇妙な問題に遭遇しました

block content 
    if user 
    h1 logged in #{user} 
    script var shared_resources.user = user 
    if !user 
    h1 Not logged in 

何らかの理由で、そのユーザーの条件付きパス罰金があります。また、#{user}にログインしてユーザーオブジェクトを印刷すると、細かい部分が表示されます。しかしスクリプトタグの中で、私は捕らえられていない参照を取得しています、ユーザーは定義されていません。誰がなぜこれが起こっているのか知っていますか?

答えて

2

scripタグでもテンプレート文字列を使用する必要があります。

script var shared_resources.user = "#{user}" 

オブジェクトを埋め込みたい場合は、次の操作を試すことができます。

script var shared_resources.user = !{JSON.stringify(user).replace(/<\//g, '<\\/')} 
+1

これは問題ありませんが、ユーザーがオブジェクトであるときに問題が発生していました。 jadeがjsonを適切に解析しないので、オブジェクトに構文エラーが発生するようです。私はユーザー名の文字列を渡すことにしました。 – tetutato

関連する問題