2017-08-11 2 views
2

JSONオブジェクトをpugからクライアントサイドのJavaScriptに渡そうとしています。コードの構造は次のとおりです。 JSONオブジェクトをレンダリングし、Node-ExpressバックエンドからPugに渡します。以下のコード:Pug JSONオブジェクトをクライアントサイドに渡す方法JavaScript

server.js

app.get('/myrooms', function(req, res) { 
    Room.find() 
     .where('_id') 
     .in(user.rooms) 
     .exec(function (err, records) { 
      res.render('rooms/index', {myrooms : records}) 
     }) 
}) 

このオブジェクトが私のパグファイルで提供された後。今私はそれをクライアント側のスクリプトに渡したいと思います。私はindex.pugファイルでこれをやっています。

index.pug

script(src='/js/play.js'). 
    trooms = "#{myrooms}" 

play.js

console.log(trooms) 

それは私を与えるエラー 'troomが定義されていません'。私はこのオブジェクトをどのように渡すことができるかわかりません。いくつかの古い記事によると、これは玉の中で働いていた。しかし、私はパグのバージョン2.0.0-rc.2を使用しています。

+0

あなたは、スクリプトをソースの前に ' "#{myrooms}"' trooms =アウトする必要があります。 – lxe

+0

また、JSONをオブジェクトに変換するには 'JSON.parse( '#{myrooms}')'を呼び出す必要があります。 – alexmac

+0

JSON.parse( '#{myrooms}') 'を実行しようとしましたが、動作しませんでした。 – Shadid

答えて

3

あなたは試すことができます

var trooms = !{JSON.stringify(myrooms)} 
+0

古いバージョンのjadeに戻してしまいます。私は今これで作業します – Shadid

関連する問題