好吧,我已經使用Jekyll構建了一個博客,您可以在文件_config.yml
中定義可在所有模板/佈局中訪問的變量。我目前正在使用Node.JS/Express和EJS模板和ejs-locals(對於partials/layouts)。我正在尋找類似site.title
這樣的全局變量,如果有人熟悉Jekyll,可以在_config.yml
找到。 ,(而不是頁面標題),作者/公司名稱,它保持不變對所有我的網頁。如何使用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
});
};
爲例能夠在一個地方定義像我的網站的標題,描述,作者等變量,並讓他們accessib在我的佈局/模板中通過EJS,而不必將它們作爲選項傳遞給每個res.render
的調用。有沒有辦法做到這一點,並仍然允許我傳遞每個頁面特有的其他變量?
app.locals比我建議的更有意義。但它有一個問題,你不能訪問你的中間件中的本地人。在這種情況下,它可能並不重要,但它是您偶爾遇到的其中一個問題。 – Pickels 2013-05-12 16:31:31
布埃諾!感謝您澄清不明顯的文檔! – 2013-06-18 22:16:59
您還可以在js或json文件中定義配置,並只需要()它在任何需要它的地方。該文件只會在應用程序中加載一次,並且每個需要它的模塊都可以訪問它定義的值。請參閱http://stackoverflow.com/questions/5869216/how-to-store-node-js-deployment-settings-configuration-files – 2014-07-18 01:50:38