- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
目前我有Express3-Handlebars设置,我试图获取当前 URL,提取 GET 查询,然后将它传递到辅助函数中的 Handlebars 模板。我无法找到一种方法来将发送到我的 handlebars 助手的请求传递给我,因为我似乎只能访问我的路由中的当前 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'
]
});
});
我希望编写一个可以利用 Node 的 url
库并将 URL 传递给 Handlebars 的辅助函数
helpers: {
currentURL: function() {
console.log(url.parse(req.originalUrl, true));
return url.parse(req.originalUrl, true);
},
然后我可以在我的 handlebars 文件中以某种方式访问它。我希望我的模板能够智能地打印一些东西,但如果我收到某个请求,则打印另一件事。所以像
{{#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 请求并根据它们呈现特定页面,但我真的只想更改我的 handlebars 模板文件中的一件小事,所以我希望我不必为我想要的每个 GET 请求创建多个 handlebars 模板处理。或许这才是正确的做法?
最佳答案
所以我想通了。很傻。我在我的模板中定义了一个范围,因此它只能访问 info
变量。
{{#info}}
<h1>{{header}}</h1>
...
{{/info}}
req
变量发送一个query
字段供我使用,所以我最终根本不需要辅助函数。更多可以查看here all the way at the bottom .
app.get('/info', function(req, res) {
//set context of handlebars
res.render('info', {
info : {
header : "View Title"
},
query : req.query
}
}
由于 Handlebars 的工作方式,您可以简单地向渲染函数添加上下文。然后它将可用。
但让我感到困惑的是示波器,所以在我的 handelbars 模板中,我只是简单地打开和关闭示波器。
{{#info}}
<h1>{{header}}</h1>
...
{{/info}}
{{#if query.country}}
<h2>Welcome to the {{query.country}}!</h2>
{{else}}
<h2>Welcome!</h2>
{{/if}}
{{#info}}
... continue
{{/info}}
希望这对您有所帮助。
关于node.js - 快速 Handlebars : Getting current URL query and passing query to a template?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26570359/
我有一个 jQuery 日期选择器。我想将默认日期设置为“当前月份、当前日期(当前年份-18)”,但在设置 defaultDate 属性时遇到问题。显示的默认年份是 1920 年,据说是 1995 年
我有下面的 C 程序来实现升序链表。问题出在 buildList() 函数中,因此您可以忽略除 main() 和 buildList() 之外的其他函数。 #include #include stru
嗯,想象一下 current.txt 文件: asdf base.txt 文件: asdf 其他.txt文件: asdf 当我进行三向 merge 时 git merge-file current.t
我试图在鼠标悬停时生成一个 :after 伪元素。例如: .email{ width:100px; overflow:hidden; text-overflow:ellipsi
为什么 $('a.current').removeClass('current'); 不适用于此 jquery 选项卡? http://jsfiddle.net/laukstein/ytnw9/8/
我正在创建一个应用程序(Outlook 的 Office 加载项) 我遇到的问题是更新我的屏幕。我知道我需要调用 Dispatcher,但是它在我的 ViewModel 中始终为 null p
我为客户开发网络和移动应用程序。在我当前的架构中,许多资源在 Web 访问和移动访问之间共享。 aspx 页面可以显示在网络上,也可以在移动应用程序中调用 WebView 。我的问题是: WebOpe
我通过调用 IEnumerable.GetEnumerator() 得到了一个枚举器,然后我称它为MoveNext()直到它返回false,然后访问它的Current属性(property)。令我惊讶
我正在尝试动态查找当前运行的函数(此函数)的名称,即 (defun my-func () (remove-hook 'some-hook this-function) (do-
阅读了短语 "The current SynchronizationContext is a property of the current thread" correct" ,我有点懵了…… 在 V
集成 IOS STRIPE TERMINAL SDK对于BBPOS Chipper 2X BT使用 swift 。我们已经开发并测试了该系统,并且运行良好。但是当我们将它交给其他国家的客户时,他们收到
当我在训练期间编写的类上实现 IEnumerable 和 IEnumerator 时,我注意到我需要为属性“Current”指定两个实现。 public class PeopleEnumerator
我原以为对实现了 IEnumerable 的空集合执行以下代码会抛出异常: var enumerator = collection.GetEnumerator(); enumerator.MoveNe
应Application.Current.Shutdown()不用作关闭 WPF 应用程序的最佳实践? 我有一个小的多窗口应用程序,“关机”似乎对我所有的退出命令都很好。但是,我被告知要始终使用 Ap
在 XPath 1.0 中,有一个函数 current() 可以派上用场,当我根据我当时所在的节点引用 XML 中其他地方的节点时。我的 XML 具有如下结构:
在 MVC 中,这两者有什么区别? 它们看起来相同,甚至返回相同的类型/类System.Web.Security.RolePrincipal,但有一些微妙之处。 例如。当针对通过 ClaimsPrin
这个问题在这里已经有了答案: What is the difference between an App and Application in c#.net? (1 个回答) 关闭 7 年前。 这两
我正在为我的团队开发一个代码生成器 (VSIX),在我与 VSIX 可扩展性框架作斗争之后,我打算使用 Roslyn 作为基础引擎。 我的代码生成器目前能够为解决方案生成一个新的 csproj,并且能
为什么 $('a.current').parent('li').addClass('current'); 和 $(this).hasClass('current')。 parent('li').add
当我使用 Xcode 调试我的 iOS 程序时,gdb 将其显示在控制台 View 上,并且没有发生任何错误。 我只想知道输出“Current language: auto; currently ob
我是一名优秀的程序员,十分优秀!