使用依赖注入模式解决 Express.js 中路由中间件依赖的问题
7 回复
摘录express 4.0文档里的一段话
The "mount" path is stripped and is not visible to the middleware function. The main effect of this feature is that mounted middleware may operate without code changes regardless of its "prefix" pathname.
除了文字原本的意思之外,我的理解就是中间件不应该对上下文环境太敏感,一旦出现了几个中间件之间依赖的关系,那就应该检讨是否中间件的设计和抽象出问题了,或者就不该用中间件来解决
确实如此。不过这两个中间件都是摘自 TJ 写的演示代码,虽然考虑到他本来就是为了演示 Route Specific Middleware 的特性所以才把载入用户和验证权限分成两个中间件来写,但就我自身体验而言,中间件的依赖关系并不少见。至于"滥用"其实很难界定,越细分的中间件越灵活。