[英]Nodejs Express - dynamicHelpers error
我正在嘗試使用以下內容運行我的應用:
app.configure(function(){
app.set('views', __dirname + '/views');
app.enable('jsonp callback');
app.set('view engine', 'jade');
app.set('view options', {layout : false});
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
secret : 'abcdefg'
}));
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.dynamicHelpers({
session : function(req, res){
return req.session;
}
});
並在運行node app.js
時收到以下錯誤消息
app.dynamicHelpers({
TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'dynamicHelpers'
at Object.<annonymous> (C:\nodeapps\nodeblox\app.js:35:5)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.Load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallBack (node.js:244:9)
我是使用nodejs的新手,但我知道Express不再支持dynamicHelpers(),我嘗試重新編寫代碼並繼續在整個地方出錯。 修復此dynamicHelpers代碼的正確方法是什么,以確保其余代碼仍能正常工作?
謝謝!
我猜你沒有使用Express 2而是Express 3.有遷移指南可以幫助你弄清楚發生了什么。 對於dynamicHelpers(),您需要了解app.use函數需要在配置部分中,而不是之前的位置。
之前
app.configure();
app.dynamicHelpers({
user: function(req, res) {
return req.session.user;
}
});
現在在E3
app.configure(function(){
//...
app.use(function(req, res, next){
res.locals.user = req.session.user;
next();
});
//...
});
**In Epress3.x** there seems to be having no concept of static or dynamic.
use global or local instead.
/*Global*/
app.locals({ foo: 'bar' });
//or
app.locals.foo = 'bar';
/*For single request*/
res.locals({ foo: 'bar' });
//or
res.locals.foo = 'bar';
更多的差異是指這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.