2016-04-30 9 views
0

私はjadeを初めて使っているので、正しく書かれていないかもしれません。jsonファイルを開いてファイル内のデータを使用しようとしています。変数、私はindex.jsではなく、HTMLのレンダリングで適切なコンテンツを取得します。jade +のjsonファイルを開く

私はここにある解決策を使用しましたが、問題は同じですが、私の変数は決して定義されていません。 index.jsで

:index.jadeで

router.get('/', function(req, res, next) { 
    require('fs').readFile('public/data/cocktails.json', 'utf8', function (err, data) { 
    if (err) throw err; 
    var obj = JSON.parse(data); 
}); 
res.render('index'); 
}); 

- console.log(obj) 

答えて

-1

あなたは本当に近いです。ファイルを読み込んでJSONを解析していますが、res.renderには渡していません。ほんの少しのコードを変更するには:

router.get('/', function(req, res, next) { 
    require('fs').readFile('public/data/cocktails.json', 'utf8', function (err, data) { 
    if (err) throw err; 
    var obj = JSON.parse(data); 

    // This is the changed line! 
    res.render('index', obj); 
    }); 
}); 

を今すぐあなたのジェイド・ビューにpublic/data/cocktails.jsonのデータを使用することができるはずです。

また、著作権上の理由から、玉はPugに改名されました。玉が突然仕事をやめたら、将来を念頭に置いておくのが良いことです!

1

あなたのヒスイとルータファイルは、変数を共有しません... 私はあなたが使用していると仮定していますもしそうなら、変数をres.render関数に渡します。

var obj = JSON.parse(data); 
res.render('index',{obj:obj}); 

変数objとしてindex.jadeファイルにアクセスできるようになりました。

- console.log(obj) 
関連する問題