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