这可能不是我的正确方法,但我想有条件地添加一个对象/参数到应用程序变量在expressjs / connectjS中间件调用。
由于这个函数是回调函数,从中间件调用内部访问应用程序的标准/最佳方法是什么?
//app.js var myMiddleware = require('./lib/mymiddleware.js'); ... app.configure( function(){ app.use( myMiddleware.func() ); ... } if( 'object' !== typeof app.myObject ){ cry( 'about it' ); } //mymiddleware.js module.exports.func = function( ){ return function( req,res,next ){ //append app object //app.myObject = {} next(); } };
注意,这不是以后要渲染的本地或设置的东西,而是在执行链后面的路由和套接字中使用的东西。
解决方法
请求对象有一个应用程序字段。只需使用req.app