私はdynamicHelpersを使用して、Express 2の各ページにいくつかの変数を設定していました。今はそれらがなくなり、やり方がわかりません。 Express3でこれを行う最善の方法は何ですか?Express 3のすべてのビューにデータを渡すには?
app.js
app.dynamicHelpers(require('dynamicHelpers'))
dynamicHelpers.js veiw.jade
h1= user.username
私はdynamicHelpersを使用して、Express 2の各ページにいくつかの変数を設定していました。今はそれらがなくなり、やり方がわかりません。 Express3でこれを行う最善の方法は何ですか?Express 3のすべてのビューにデータを渡すには?
app.js
app.dynamicHelpers(require('dynamicHelpers'))
dynamicHelpers.js 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')
index.jade
!!! 5
html
body
div hello #{user.name}
req.flash試して使用するために:私の答えを更新し
を、https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.xで、まだ3.0に移行していませんオプションを表示:
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 }).
エクスプレス3.xのapp.localsでは、このトリックを行います! – Zugwalt
で
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();
});
あなたのコードは でなければなりません。次のようになります。 次へ 次のように入力してください:res.locals.user = {username: 'test'}; (); }); '' ' – Yalamber
https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x – supernova
私はそれを見ました。 – Pardoner