在express.js中为每个请求设置全局res.local变量
Setting global res.local variables on each request in express.js
基本上,我想构建一个站点范围的导航栏,其中包含express.js 中本地变量中指定的链接
所以我建立了我的链接列表,我想包括在一个页面上:
class NavigationLink
constructor: (@title,@url) ->
app.use (req,res,next) ->
res.locals.navigationLinks = [
new NavigationLink "About", "/about"
new NavigationLink "Projects", "/projects"
new NavigationLink "Skills", "/skills"
new NavigationLink "Contact", "/contact"
]
next()
然后如果我点击主页:
app.get '/', (req,res) ->
res.render('about')
Jade试图渲染这个布局文件,该文件应该在navigationLinks数组中循环并为每个数组渲染:
!!! 5
html
include header
body
.container
.row
.span3
ul.nav.nav-tabs.nav-stacked
for navigationLink in navigationLinks
include navigationLink
.span9
block content
然而,我收到了一个引用错误"navigationLinks未定义",我认为这意味着本地人没有通过。我很乐意提供关于如何解决问题的建议,或者更适合这类事情的另一种设计模式(在网站的每个页面上动态构建链接)。谢谢
Jonathan Ong是正确的。上面的代码应该按照默认的中间件顺序工作,该顺序将在app.router
中间件之前运行所有app.use
中间件。因此,我同意在代码的其他地方,您的代码片段中的app.use
之前可能有一行app.use app.router
。
相关文章:
- 在javascript函数中设置全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 如何构建'瞬间'在非全局区域设置中工作的函数
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- 没有通过ajax调用设置Javascript全局变量
- 如何从jQuery设置控制器或全局变量的属性
- 使用eval()设置全局变量
- 如何在另一个函数调用中设置全局数组值
- 全局设置angular.js url根
- 从ngInit在AngularJS中全局设置自定义HTTP头
- 创建全局设置超时变量
- 如何使用 JSLint 全局设置“使用严格”
- bootstrap日期选择器全局设置语言
- Angular过滤器|全局设置格式化(最佳实践)
- 如何全局设置角矩时区
- JavaScript闭包使用全局设置对象或将其传递给每个函数
- 如何为端点做全局设置
- PHP全局设置URL并在每个页面中调用它
- 全局设置ajax请求的javascript变量
- asp.net mvc-在JavaScript中全局设置url