gpt4 book ai didi

node.js - NodeJS/Express : what is "app.use"?

转载 作者:IT老高 更新时间:2023-10-28 21:44:52 25 4
gpt4 key购买 nike

docs for the NodeJS express module ,示例代码有 app.use(...)

什么是use函数,在哪里定义?

最佳答案

应用程序对象在创建 Express 服务器时被实例化。它有一个中间件,可以在 app.configure() (this is now deprecated in version 4.x) 中自定义。 .

要设置您的中间件,您可以调用 app.use(<specific_middleware_layer_here>) 对于您要添加的每个中间件层(它可以对所有路径通用,或者仅在您的服务器处理的特定路径上触发),它将添加到您的 Express中间件堆栈。中间件层可以在use的多次调用中一层一层添加,或者甚至一次调用一次。见 use documentation了解更多详情。

举个例子来理解 Express 中间件的概念,下面是我的应用程序中间件堆栈 (app.stack) 在将我的应用程序对象作为 JSON 记录到控制台时的样子:

stack: 
[ { route: '', handle: [Function] },
{ route: '', handle: [Function: static] },
{ route: '', handle: [Function: bodyParser] },
{ route: '', handle: [Function: cookieParser] },
{ route: '', handle: [Function: session] },
{ route: '', handle: [Function: methodOverride] },
{ route: '', handle: [Function] },
{ route: '', handle: [Function] } ]

正如你可能推断的那样,我调用 app.use(express.bodyParser()) , app.use(express.cookieParser())等,将这些快速中间件“层”添加到中间件堆栈中。请注意,路由是空白的,这意味着当我添加这些中间件层时,我指定它们在任何路由上触发。如果我添加了仅在路径 /user/:id 上触发的自定义中间件层这将在 route 中反射(reflect)为字符串上面堆栈打印输出中该中间件层对象的字段。

每一层本质上都是添加一个函数,专门处理通过中间件的流程。

例如通过添加 bodyParser , 您确保您的服务器通过快速中间件处理传入请求。因此,现在解析传入请求的主体是中间件在处理传入请求时所采用的过程的一部分——这一切都是因为您调用了 app.use(bodyParser) .

关于node.js - NodeJS/Express : what is "app.use"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com