Jade テンプレート エンジンまたはその他に問題があります。私は知らない。オブジェクトをループしてそのプロパティを出力すると、「country」プロパティが出力されないように見えますが、「id」および「 _v」プロパティは正常に出力されます。「セクション」プロパティはオブジェクト自体であるため、出力されないと予想されますが、コンソール ログには何も表示されませんでした。
スキーマ:
var CSVSchema = {
country: {type: String}
, sections: [
{
title: {type: String}
, sub_sections: [
{
title: {type: String}
, value: {type: String}
}
]
}
]
};
検索コントローラー: これは、mongodb データベースで国を検索し (mongoose を使用)、囲まれたプロパティを渡す Jade テンプレートをレンダリングします。
exports.query = function (req, res) {
var query = req.body.query;
results.find({"country": query}, function (err, data){
res.render('search/query', {
title: 'Search Query'
, query: req.body.query
, results: data
, message: req.flash('error')
})
});
}
mongodb からの JSON オブジェクト: これは data 変数に格納され、検索コントローラーを介して Jade テンプレートに渡されます。何らかの理由で国プロパティが _id プロパティの前に表示されていますが、セクションはそうではありませんか? _idの後に国を配置するように mongodb のエントリを編集しましたが、何も修正されませんでした。
{ country: 'India',
_id: 51cda5163c7286000000000c,
sections:
[ { sub_sections: [Object],
_id: 51cda5163c72860000000011,
title: 'Undergraduate' },
{ sub_sections: [Object],
_id: 51cda5163c7286000000000d,
title: 'Postgraduate' } ],
__v: 0 }
Jade テンプレート: Jade のレンダリングに問題がないことをテストするために、テスト プロパティを挿入して正常に出力されたかどうかを確認しました。
for result in results
- result.test = 'TESTING123'
ul
li #{result._id}
li #{result.test}
li #{result.country}
li #{result.sections}
li #{result.__v}
出力:
- 51cd926b46baa54df700000c
- テスト123
- 0
Package.json: Jade 0.30.x にダウングレードしようとしたところ、テンプレートが壊れて、「本体が定義されていませんか?」という行に何かが表示されました。
{
"name": "test",
"description": "test",
"keywords": [
"express",
"mongoose",
"mongodb",
"passport"
],
"version": "0.0.1",
"private": true,
"engines": {
"node": "0.10.x",
"npm": "1.2.x"
},
"dependencies": {
"express": "3.3.1",
"jade": "0.31.x",
"mongoose": "3.6.13",
"connect-mongo": "0.3.2",
"connect-flash": "0.1.1",
"passport": "0.1.17",
"passport-local": "0.1.6",
"csv": "0.3.3",
"moment": "2.0.0"
},
"devDependencies": {
"mocha": "1.11.0",
"nodemon": "0.7.8"
}
}