node.js - 如何将数据传递给 Express 3 中的每个 View ?

标签 node.js express

我曾使用 dynamicHelpers 在 Express 2 的每个页面上设置一些变量。现在它们都消失了,我不确定如何去做。使用 Express 3 执行此类操作的最佳方法是什么?

应用程序.js

app.dynamicHelpers( require('dynamicHelpers') )

动态助手.js

exports.user = function(req, res) {
    return req.user || {};
}

exports.message = function(req, res) {
    return req.flash.message || {};
}

在 veiw.jade 中

h1= user.username

最佳答案

中间件示例

var app = require('express')()
  , jade = require('jade')

app.set('views', __dirname + '/views')
app.set('view engine', 'jade')  

app.use(function(req,res,next){
  res.locals.user = { name : "test" }
  next()
})

app.get('*',function(req,res){
   res.render('index.jade')
})

app.listen('8001')

索引. Jade

!!! 5
html
  body
    div hello #{user.name}

使用 req.flash 试试:

var app = require('express')()
  , jade = require('jade')

app.set('views', __dirname + '/views')
app.set('view engine', 'jade')

app.use(require('connect-flash')())

// Expose the flash function to the view layer
app.use(function(req, res, next) {
   res.locals.flash = req.flash.bind(req)
   next()
})


app.get('*',function(req,res){
   res.render('index.jade')
})

app.listen('8001')

更新了我的答案,还没有迁移到 3.0,在 https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x查看选项下:

The "view options" setting is no longer necessary, app.locals are the local variables 
merged with res.render()'s, so app.locals.pretty = true is the same as passing 
res.render(view, { pretty: true }).

关于node.js - 如何将数据传递给 Express 3 中的每个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658175/

相关文章:

java - node.js 和本地主机上的 java 服务器之间的通信

node.js - AWS后端+React前端: handling request

node.js - Nodejs如何处理多张图片上传

javascript - node busboy + express 4 + ng-file-upload 不触发事件

node.js - 使用 "require"(Node ORM) 处理 Node.js 异步返回

node.js - header 崩溃应用程序并出现错误 TypeError : undefined not an object (evaluating 'theme.label' )

node.js - 如何动态设置 Jade 模板的布局以在 Node.js/Express 3.0 中扩展?

node.js - 如何在 Node.js Express 中实际分离访问日志和错误日志?

node.js - mongodb增量编号-500内部服务器错误

jquery - Node.js Express - 如何动态提供模型数据?