【发布时间】:2020-12-30 23:19:30
【问题描述】:
我的应用中有一些中间件:
-
loggedInUserHandler:加载当前用户并将其保存在上下文中 -
notificationHandler:从上下文中获取当前用户。然后加载该用户的通知并将它们保存到上下文中。 -
routeHandler:从上下文中获取当前用户和通知,并将其加载到正确的视图中。
基本上每个中间件都可能依赖于以前的中间件生成并附加到上下文的数据。现在,我只是按正确的顺序加载中间件,如下所示:
app.use(loggedInUserHandler);
app.use(notificationHandler);
app.use(routeHandler);
但是我想知道是否有更好的方法来做到这一点,或者声明每个中间件的依赖关系?然后,如果以错误的顺序调用它们,则会抛出错误或类似的东西。我在 Koa 中找不到太多关于此的信息,所以我想知道是否有适当的方法来做到这一点。有什么建议吗?
【问题讨论】:
-
我最初的想法是创建一个包含这些函数的数组,然后像这样在 app.use 中传递该数组:
app.use(async ctx => loadUserNotifications.map(fn => fn.call(ctx)))但是这些函数不会是严格意义上的 koa 中间件
标签: dependencies middleware koa