0
在handler.js里面我导出了2个函数。一个用于initialize()
和其他handle()
。初始化函数用于根据应用程序设置加载处理程序动态。我在module.exports函数之外共享变量var handler
。如何在module.exports中共享作用域
handler = new Handler(app);
创建新实例分配给共享变量var handler
。然后在handle()
函数共享变量var handler
里面。使用
动态require()
Web请求时间中的文件不是好主意。所以initialize()
方法在应用程序启动时创建和调用。
让我知道,建议删除共享变量“处理”
var handler;
module.exports = {
initialize : function (app){
var Handler = require(path.resolve(app.basedir, app.settings.handler));
handler = new Handler(app);
},
handle : function handle(ctx) {
var urlToHandle = ctx.url;
return handler.resolveURL(ctx)
.then(function (json) {
ctx.layoutJSON = json;
return ctx;
})
.catch(function (e) {
throw e;
});
}
};
不知道我明白了,为什么你需要删除'handler',中间件被封装在IIFE中,并且被Node缓存呢? – adeneo