我正在使用express和swig作为tpl引擎在节点中为自己放置一个引导框架。
我习惯使用ezpublish等框架,可以从tpl代码中提取ini设置。我实际上并不喜欢这种方式。
但是,总会有多个地方需要的内容,例如:
//general site details
module.exports = {
'siteName' : 'my site',
'emails' : {
'noReply' : 'no-reply@mysite.com',
'accouts' : 'accounts@mysite.com',
'support' : 'support@mysite.com'
},
'website': 'www.mysite.com',
'googleAnalytics': {
'trackingID': 'UA-123321213-1'
}
};
我希望能够始终将上述信息提供给应用使用的任何swig模板。有没有办法将这些定义为全局变量,所以我不必在每一条路线上都通过它们?
在每条路线中这样做似乎很疯狂:
app.get('/profile', isLoggedIn, function(req, res) {
res.render('private/profile.html', {
user : req.user,
siteDetails: siteDetails /* this should be automatic */
});
});
如果无法使用swig tpl引擎设置gloabls,是否可以将对象设置为始终传递给快速渲染功能?
由于 约翰
答案 0 :(得分:0)
我找到了答案:
app.locals.siteDetails = require('./config/site');
然后,在模板中,您可以通过以下方式访问该对象:
{{siteDetails.googleAnalytics.trackingID}}