Express/Jade のビュー キャッシュで面白いことが起きています。コントローラーは、Mongoose を介して MongoDB から記事を取得し、それを res.render 関数に渡します。ただし、数分間実行した後、Express はそのルートへのすべてのリクエストに対して同じコンパイル済みテンプレートの提供を開始します。これは、さまざまなテンプレートで使用される共有 .jade インクルードでも発生します。
データベースは正しい記事を取得しており、ランダムな文字列をテンプレートに渡しても問題ありません。常に同じ出力が得られます。
これはコントローラー関数です。
exports.show = function(req, res) {
var articleId;
articleId = req.params.id;
Article.findOne({
_id: articleId
}).populate('author').exec(function(err, article) {
if (err) {
console.log(err);
} else {
res.render('articles/show', {
article: article,
articleId: article.id
});
}
});
};
そして、それがルートです:
app.get('/articles/:id', articles.show);
本番モードでも開発モードでも同じことが起こります。
Express/Jade でこの種の問題に遭遇した人はいますか?