JADEを使用してJSONドキュメントを反復しようとしています。
私のサーバー(node.js + expressを実行)は.get()リクエストで次のことを行っています。
app.get('/search/', function(req,res){
// Parse the query
var dbQuery = url.parse(req.url, true).query;
var product = dbQuery.product;
var category = dbQuery.category;
console.log('Searching for: ' + product + ' in ' + category);
//Mongo DB setup then query
var result;
var server = new mongodb.Server('23.23.129.158', 27017, {});
new mongodb.Db('militaryListDB', server, {}).open(function(err, client){
if(err) throw err;
var collection = new mongodb.Collection(client, 'products');
collection.find({}).toArray(function(err, results){
console.log(results);
console.log(JSON.stringify(results));
res.render('results', {result: JSON.stringify(results), title: 'Test'});
});
});
});
これがクライアントにレンダリングしているものです。
[{"_id":"50738ebbe3d87c6beaddb6f2","name":"tv","category":"tech","cost":"30"}]
配列を反復するためのjadeのドキュメントを読み、JSONでも同じだと思いましたが、機能していません。空白を表示しているだけです。これを試してみると、
extends layout
block content
div#wrapper
p #{results}
jSONドキュメントが表示されます。しかし、これを試してみると、
extends layout
block content
div#wrapper
p #{results.name}
空白が表示されます。表示されるべき時は「テレビ」です。誰かがJSONドキュメントの反復を理解するのを手伝ってくれるとしたら、それは素晴らしいことです。
ありがとうございました!
コードでは、results
配列を反復処理していないので、次のようにする必要があります。
for result in results
p #{result.name}