Express 2의 모든 페이지에서 일부 변수를 설정하기 위해 dynamicHelpers를 사용하고있었습니다. 이제 사라 졌으니 까 어떻게해야할지 모르겠군요. Express 3에서 이와 같은 작업을 수행하는 가장 좋은 방법은 무엇입니까? 당신은 당신의 통화를 라우팅하기 전에 다음과 같은 몇 가지 미들웨어를 원할 것Express 3의 모든보기에 데이터를 전달하는 방법은 무엇입니까?
h1= user.username
Express 2의 모든 페이지에서 일부 변수를 설정하기 위해 dynamicHelpers를 사용하고있었습니다. 이제 사라 졌으니 까 어떻게해야할지 모르겠군요. Express 3에서 이와 같은 작업을 수행하는 가장 좋은 방법은 무엇입니까? 당신은 당신의 통화를 라우팅하기 전에 다음과 같은 몇 가지 미들웨어를 원할 것Express 3의 모든보기에 데이터를 전달하는 방법은 무엇입니까?
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')
index.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 }).
express 3.x의 경우 app.locals가 트릭을 수행합니다! – Zugwalt
는 app.js
app.dynamicHelpers(require('dynamicHelpers'))
dynamicHelpers.js veiw.jade에서
exports.user = function(req, res) {
return req.user || {};
}
exports.message = function(req, res) {
return req.flash.message || {};
}
:
app.use(function(req,res,next){
res.locals.user = {username: 'test'};
next();
});
당신의 코드가 이어야한다고 생각합니다. ("req, res, next) { res.locals.user = {username : '테스트'}}; next(); });''' – Yalamber
https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x – supernova
예. 나는 그것을 보았습니다. – Pardoner