0

express.js 的 router 对象如何解析为 app.use() ,它只接受回调,因为 router 是 express 的对象,我想了解为什么 app.use() 即使 router 是一个对象和 app 也不会抛出错误.use() 需要回调?

4

1 回答 1

2

app.use文档中:

callback

回调函数;可:

  • 一个中间件功能。
  • 一系列中间件功能(以逗号分隔)。
  • 一组中间件函数。

以上所有的组合。

...

由于routerapp实现了中间件接口,您可以像使用任何其他中间件功能一样使用它们。

(我在最后强调)

所以这就是答案。app和都是router函数,调用时遵循中间件协议。(请记住,JavaScript 中的函数是对象,因此它们可以具有属性和方法。)

于 2021-03-13T17:53:35.933 回答