我为 Connect 和 Express 编写了一个中间件,它的设置方法需要一些繁重的工作。由于初始化任务的性质,这些东西是异步的,所以我遇到的问题是只有在初始化运行后才能访问中间件。
目前我已经使用回调解决了它:
function setupMiddleware(callback) {
doSomeAsyncInitialization(function () {
callback(function (req, res, next) {
// The actual middleware goes here ...
});
});
}
这行得通,但对调用者来说并不好。而不是能够做到
app.use(setupMiddleware());
我要做:
setupMiddleware(functin (middleware) {
app.use(middleware);
});
现在我在想是否有更好的方法,例如让中间件在后台初始化并延迟所有传入的请求,直到中间件准备好。
我怎么能解决这个问题?我应该在这里使用的任何想法或最佳实践?