変数をテンプレートに渡すことを試みていますが、単一ページで機能するようになっていますが、その結果にアクセスする方法を見つける必要があります任意のページ。その理由は、それがテンプレートの一部であるサイドバーに必要であるということです。すべてのページからクエリ結果にアクセスできるようにする方法
マイテンプレートは明らかに私の実際のコードだけでなく、sudoのコードで、
include header
include sidebar
content
include footer
です。
私は含める必要があるクエリは次のとおりです。
Item.count({"author.id":req.user.id}, (err, itemCount)=>{
if(err){
console.log(err);
} else {
var Count = JSON.stringify(itemCount);
// somehow I need to store Count to be accessible inside my sidebar
}
});
私は私が取ると、それぞれ、すべてのルート内のクエリを置くが、私はログインしているユーザーのみのためにそれを行うことができる方法がある可能性があることを知っているとミドルウェアかそれとも何かに置くか?
私は現在、それぞれのルートに格納していますが、DRYコードではないことを知っています。また、50個以上のルートを処理しているため、更新が大変です。
私の典型的なルートは以下のとおりです。
// dashboard
app.get('/dashboard',
setRender('dashboard/index'),
setRedirect({auth: '/login'}),
isAuthenticated,
(req, res, next) => {
},
dashboard.getDefault);
テンプレートにアクセスするには、swig/twigの構文である '{{Count}}'を実行してください。それを含めると、それは別のファイルになるか、または単に私のapp.jsファイルの中に入れられますか? 'isAuthenticated'を変更しますか? isUnauthenticated = require( './ミドルウェア/ auth')。isUnauthenticated; 'その後、var名を後で含むことは、それ自身のミドルウェアです。どのようにそれを行うためのそれではないですか? – Kirbytech
同じ 'app'を参照している限り、どこでも好きな場所に置くことができます。app.jsは動作する必要があります。あるいは、別のjsファイルに関数を書き込んでそこに書き出し、app.jsでコール。認証ミドルウェアに関しては、単なる提案で、 'app.use( '*'、isUnauthenticated)'を実行して同じことを達成でき、すべてのルートで宣言する必要はありません。 – ruedamanuel
今後1〜2週間で私のルートをやり直すと、そのことを覚えておいてくれます。彼らは大きな見直しが必要です。ファイルは1800行以上あり、その中にすべてのルートがあります。最初からそれを分けないように私のあまりにも愚かな道。 – Kirbytech