【发布时间】:2014-12-21 14:47:19
【问题描述】:
目前我已经设置了Express3-Handlebars,我正在尝试获取当前的 URL,提取 GET 查询,并将其传递给我的车把模板中的辅助函数。我很难找到一种方法来传递发送给我的车把助手的请求,因为我似乎只能访问我的路线中的当前 URL。
app.get('/somewhere', function(req, res) {
console.log(req.originalUrl); <-- prints the URL I am at such as somewhere?country=US
res.render('somewhere-home', {
somewhere-info: global.somewhere-info
globals: global.globals,
css:['/media/css/somewhere.css'
],
js:[
'/media/js/somewhere.js'
]
});
});
我希望编写一个辅助函数,可以利用节点的url 库并将 URL 传递给 Handlebars
helpers: {
currentURL: function() {
console.log(url.parse(req.originalUrl, true));
return url.parse(req.originalUrl, true);
},
然后我可以在我的车把文件中以某种方式访问它。我希望我的模板能够聪明地打印一些东西,但是如果我收到某个请求,请打印另一个东西。所以像
{{#if currentURL.query == 'US' }}
<h1>Welcome to US!</h1>
{{else}}
<h1>Welcome to wherever the hell you are from!</h1>
{{/if}}
不确定我是否以错误的方式处理此问题。我在Express's app.get documentation 中读到,您可以处理某些 GET 请求并基于它们呈现特定页面,但我真的只想更改我的车把模板文件中的一件小事,所以我希望我不必为我要处理的每个 GET 请求。或者也许这是正确的做法?
【问题讨论】:
标签: node.js express handlebars.js