中间件是Nodejs / express应用的保留子目录吗?

时间:2018-12-20 21:00:52

标签: node.js express

我对中间件有一些愚蠢的问题。我了解到nodejs中的中间件函数需要req, res并在最后传递给next以便下一个函数执行。中间件在应用程序,路由器,错误处理和第三方运行。

  1. middleware的{​​{1}}仅适用吗?或者对于任何exprss应用来说都是常见的。
  2. nodejs子目录是否为每个nodejs或express应用程序保留?
  3. 应用程序是否会自动提取并执行middleware子目录下的每个文件?

2 个答案:

答案 0 :(得分:2)

  1. 不,不。还有其他使用中间件概念的框架,但我不会将其称为通用。

  2. 否,Node.js Express不会以特殊方式对待名为middleware的子目录。可能有一些使用 Express的框架为该子目录分配了特殊的含义,但仅对该框架特别。

  3. 否,但是请参阅2(某些框架可能可以那样工作)。

答案 1 :(得分:1)

中间件不仅在ExpressJS中,也不在NodeJS或文件夹结构中。这是HTTP请求和响应生命周期中的一个钩子。大多数流行的Web框架的设计中都包含此概念,而不仅仅是ExpressJS或NodeJS作为JS引擎,您可以看看其中的一些

ExpressJS

  

中间件功能是可以访问请求对象(req),响应对象(res)和应用程序请求-响应周期中的下一个中间件功能的功能。下一个中间件功能通常由名为next的变量表示。 ExpressJS

Django(Python网络框架):

  

中间件是挂钩Django请求/响应处理的框架。这是一个轻量级的“插件”系统,可全局更改Django的输入或输出。 Django

Laravel(PHP Web框架):

  

中间件为过滤进入您的应用程序的HTTP请求提供了一种方便的机制。例如,Laravel包含一个中间件,用于验证您的应用程序的用户是否已通过身份验证。如果用户未通过身份验证,则中间件会将用户重定向到登录屏幕。但是,如果用户通过了身份验证,则中间件将允许该请求进一步进入应用程序。 Laravel