2017-03-22 4 views
1

以下はpugスニペットです。 chatConfigオブジェクトにuserを動的に埋め込む必要があります。私Expressからスクリプトタグ内のresponse.renderから値を渡します

script. 
    var chatConfig = { 
    user : 'foo', 
    pass : 'bar', 
    } 

、私はscript.userキーにreq.userの値を渡すにはどうすればよい

resp.render('user/index', {username:req.user}); 

としてレンダリングするのですか?

答えて

2

Brmmmmは正しい軌道に乗っているが、あなたはあなたのJavaScriptがいない変数として、オブジェクトとして変数を使用して取得する必要があります。変数を文字列化して、JavaScriptオブジェクトとして機能させることができます。

doctype html 
html(lang='en') 
    head 
    title Jade 
    - var test = {prop1: "Hi there", prop2: "Another test"}; 
    script(type='text/javascript'). 
     var test2 = !{JSON.stringify(test)}; 
     console.log(test2, test2.prop1, typeof test2); 
    body 
    h1 Jade - template engine 
    #container.col 
     p I'm some Jade 

Live Example;ブラウザのコンソール/ Codepenコンソールで、console.log文が出力する内容を確認します。

+1

申し訳ありませんが、私はそれがオブジェクトであることを認識していませんでした。変数名 "username"は私を惑わせます。すみません、私の間違いです。 – Brmmmm

1

私はそれは次のようになりますと思う:

script. 
    var chatConfig = { 
    user : '${username}', 
    pass : 'bar', 
    } 
+0

動作しません。 '' $ {username} ''は文字列になります。 – Koko

+0

申し訳ありませんが、 '#{username}'である必要があります – Brmmmm

+0

これも役立ちますhttp://stackoverflow.com/questions/8698534/how-to-pass-variable-from-jade-template-file-to-a-script-ファイル – Brmmmm

関連する問題