2016-11-05 6 views
0

私のビューのJavascriptファイルで使用するMongoDBクエリからの結果を渡そうとしています。私はビューエンジンとしてハンドルバーを使用しています。マイMongoDBのスキーマは次のとおりです。MongoDBの結果をJavascriptファイル

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var schema = new Schema({ 
    name: {type: String, required: true}, 
    address: {type: String, required: true}, 
    lat: {type: String}, 
    lng: {type: String}, 
    classes: [{ 
     day: String, 
     start: String, 
     end: String 
    }] 
}); 

module.exports = mongoose.model('Dojo', schema); 

マイルーティングファイルには、次があります。

router.get('/classes', function(req, res, next) { 
    Dojo.find(function(err, dojos) { 
    if (err) { 
     console.error(err); 
    } 

    res.render('admin/classes', { 
     layout: 'layout-admin.hbs', 
     title: 'Admin', 
     js: 'classes-admin', 
     dojos: dojos 
    }); 
    }); 
}); 

私のHBSファイルの中で、私が持っている:

<p>{{ dojos }}</p> 

上記のコードは、画面上で私の変数を示していOKですが、console.logにスクリプトタグ内でこれをしようとするとUncaught SyntaxErrorが発生します。私のコードは:

<script type="text/javascript"> 
console.log({{ dojos }}); 
</script> 

私が間違っている場所についてのアドバイスをいただければ幸いです。

おかげ マット

答えて

0

は、スクリプトタグを変更してください:

<script type="text/javascript"> 
    var mongo_result = {{dojos}}; 
    console.log({{ mongo_result }}); 
</script> 
+0

Galkinのアイデアをありがとうが、結果は変わらなかった。 –

0

私は私のテンプレートエンジンとしてEJSに切り替えてしまったと素晴らしい仕事var dojos = <%- JSON.stringify(dojos) %>;を使用。

関連する問題