this applicationのコードを操作し、views/layout.jadeファイルのサイドバーに配置しました。サイドバーでは、私は、ビュー/ index.jadeからタグを処理するためのコードを貼り付け/切り取りました:参照エラー:「タグが定義されていません」
ul.tags
each tag in tags
a(href='/tag/' + tag._id.toHexString())
li.tag= tag.name
タグ私がクリックしたときしかし、彼らが必要としてデシベルからフェッチされ、サイドバー内でレンダリング(タグでタグ付けされたすべての記事で新しいページを表示する必要があります)そのうちの一つに、私は、エラーメッセージが表示されます。
500 ReferenceError: ... layout.jade:10 8| p 9| ul.tags > 10| each tag in tags 11|
a(href='/tag/' + tag._id.toHexString()) 12| li.tag= tag.name tags is not defined
ここでファイル「tagcontroller.js」で呼ばれています機能があります(つまり、ハンドリングですタグのロジック):
app.get('/tag/:id', function(req, res){
model.Tag.findById(req.params.id, function (err, tag){
if (err) {
console.log(err);
// do something
}
var query = blogModel.BlogPost.find({ _id: { $in : tag.blogs } });
query.where('date').lte(new Date());
query.exec(function (err, blogs) {
if (err) {
console.log(err);
// do something
}
var query = model.Tag.find({});
query.exec(function (err, tags) {
if (err) {
console.log(err);
// do something
}
res.render('tags/detail', { title: tag.name, blogs: blogs, tagList: tags, dateFormatter: dateFormatter });
});
});
});
});
コードをviews/index.jadeに戻すと、すべて正常に動作します。しかし、私はlayout.jadeでホーム(index.jade)だけでなく、すべてのページにそれを表示できるようにする必要があります。
私は本当にいくつかの助けに感謝します!
のようなものを持っている必要があり、最後に、それはあなたのおかげで動作します、ありがとうございました。あなたはできるだけ早くあなたの報酬を得るでしょう(17時間)。 :) – holyredbeard
歓迎です;)!しかし、すべてのページでタグを照会しないために、ヘルパーを使用する必要があります。ここでいくつかの情報を見つけることができます:http://dailyjs.com/2011/01/03/node-tutorial-8/。特定のヘルパーのタグを取得し、レイアウトでこのヘルパーを呼び出すことができます。 – Tronix117
ありがとう、私は今それを実装しようとしています。 – holyredbeard