私はJekyllを使ってブログを構築しました。すべてのテンプレート/レイアウトでアクセス可能なファイル_config.yml
に変数を定義することができます。私は現在Node.JS/ExpressとEJSテンプレートとejs-locals(部分/レイアウト用)を使用しています。site.title
のようなグローバル変数に類似したものを探していますが、これはにあります。 、ここで Express/Node.JSを使用して、すべてのビューでアクセス可能なグローバル変数を作成する方法は?
exports.index = function(req, res){
res.render('index', {
siteTitle: 'My Website Title',
pageTitle: 'The Root Splash Page',
author: 'Cory Gross',
description: 'My app description',
indexSpecificData: someData
});
};
exports.home = function (req, res) {
res.render('home', {
siteTitle: 'My Website Title',
pageTitle: 'The Home Page',
author: 'Cory Gross',
description: 'My app description',
homeSpecificData: someOtherData
});
};
私が望む私が現在やっているの一例である私のすべてのページに同じまま、著者/会社名、(むしろ、ページのタイトルより)。へ私のサイトのタイトル、説明、著者などのような変数を1か所に定義して、それらにアクセスできるようにする私のレイアウト/テンプレートでEJSを使用して、res.render
の各呼び出しにオプションとして渡す必要はありません。これを行う方法はありますか、それでも私は各ページに固有の他の変数を渡すことができますか?
app.localsは、私が提案したものよりも意味があります。それは1つのキャッチを持っていますが、ミドルウェアのローカルにアクセスすることはできません。この場合、おそらく問題ではありませんが、時にはあなたが陥ってしまうようなものです。 – Pickels
ブエノ!わかりやすいドキュメントを明確にしてくれてありがとう! –
また、jsファイルやjsonファイルで構成を定義し、必要なときにそのファイルを必要()にすることもできます。ファイルはアプリケーション中で一度だけロードされ、必要なすべてのモジュールは定義した値にアクセスします。 http://stackoverflow.com/questions/5869216/how-to-store-node-js-deployment-settings-configuration-files –