在 express
模块 的文档中,示例代码有 app.use(...)
。
use
函数是什么,它在哪里定义?
原文由 Alexander Bird 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 express
模块 的文档中,示例代码有 app.use(...)
。
use
函数是什么,它在哪里定义?
原文由 Alexander Bird 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2.6k 阅读✓ 已解决
1 回答900 阅读✓ 已解决
2 回答1.2k 阅读
1 回答845 阅读✓ 已解决
2 回答1.6k 阅读
2 回答589 阅读✓ 已解决
2 回答1k 阅读
app 对象在创建 Express 服务器时被实例化。它有一个可以在 — 中自定义的 中间件 堆栈
app.configure()
现在在版本 4.x 中已弃用) 。要设置中间件,您可以为要添加的每个中间件层调用
app.use(<specific_middleware_layer_here>)
(它可以对所有路径通用,或者仅在服务器处理的特定路径上触发),它将添加到您的 Express 中间件堆栈中。中间件层可以在use
的多次调用中一层一层地添加,或者甚至在一次调用中一次全部添加。有关详细信息,请参阅use
文档。举例说明 Express 中间件的概念理解,以下是我的应用程序中间件堆栈 (app.stack) 在将我的应用程序对象作为 JSON 记录到控制台时的样子:
正如您可能推断的那样,我调用
app.use(express.bodyParser())
、app.use(express.cookieParser())
等,将这些快速中间件“层”添加到中间件堆栈中。请注意,路由是空白的,这意味着当我添加这些中间件层时,我指定它们在任何路由上触发。如果我添加了一个仅在路径/user/:id
上触发的自定义中间件层,它将反映为上面堆栈打印输出中该中间件层对象的route
字段中的字符串。每一层本质上都是添加一个函数,专门处理通过中间件的流程。
例如,通过添加
bodyParser
, _您可以确保您的服务器通过快速中间件处理传入请求_。因此, _现在解析传入请求的主体是中间件在处理传入请求时所采取的过程的一部分_——所有这些都是因为你调用app.use(bodyParser)
。