NodeJS / Express:什么是“ app.use”?

NodeJS express模块文档中,示例代码包含app.use(...)

什么是use功能,它在哪儿定义?

Gil伽罗2020/03/18 18:07:36

简而言之,app.use()支持所有类型的请求[eg:get,post,...],因此它主要用于设置中间件。或可用于路线和功能分开的情况

例:

app.use("/test",functionName)

和functionName位于不同的文件中

泡芙路易2020/03/18 18:07:36

使用app.use()和app.METHOD()函数将应用程序级中间件绑定到app对象的实例,其中METHOD是中间件函数处理的请求的HTTP方法(例如GET,PUT或POST)(小写)。

古一神乐2020/03/18 18:07:36

app.use() 是一种中间件方法。

中间件方法就像Java中的拦截器一样,该方法始终针对所有请求执行。

中间件的目的和使用:

  1. 检查会话是否过期
  2. 用于用户身份验证和授权
  3. 检查Cookie(有效期)
  4. 响应前解析数据
GilStafan2020/03/18 18:07:36

它可以让你使用任何中间件(阅读更多)一样body_parserCORS等中间件可以修改requestresponse对象。它也可以执行一段代码。

村村伽罗2020/03/18 18:07:36

您还可以创建自己的中间件功能,例如

app.use( function(req, res, next) {
  // your code 
  next();
})

它包含三个参数reqresnext
你也可以用它来验证和输入则params的验证,以保持控制器的清洁。

next()用于转到下一个中​​间件或路由。
您可以从中间件发送响应

JinJin卡卡西2020/03/18 18:07:36

中间件是用于“粘合在一起”的软件的通用术语,因此app.use是一种配置中间件的方法,例如:解析和处理请求主体:app.use(bodyParser.urlencoded({ })); app.use(bodyParser.json()); 只需阅读doc,您就可以在快速应用程序中使用许多中间件:http : //expressjs.com/en/guide/using-middleware.html

Harry卡卡西2020/03/18 18:07:36

在Express中,如果我们从“ express”导入express并使用app = express(); 然后具有快速表达所有功能的应用

如果我们使用app.use()

具有任何模块/中间件功能,可用于整个快递项目

神乐神乐2020/03/18 18:07:36

app.use()的工作方式如下:

  1. 在节点http服务器实例上触发的请求事件。
  2. express对req对象进行一些内部操作。
  3. 这是Express开始执行您使用app.use指定的操作时的时间

这很简单。

只有这样,Express才能完成路由之类的其余工作。

GO宝儿2020/03/18 18:07:36
app.use(function middleware1(req, res, next){
   // middleware1 logic
}, function middleware1(req, res, next){
   // middleware2 logic
}, ... middlewareN);

app.use是在根据中间件注册顺序执行任何末端路由逻辑或中间路由逻辑之前注册中间件或中间件链(或多个中间件)的方法。

中间件:形成带有三个参数req,res和next功能/中间件功能next是回调,它引用链中的下一个中间件功能,在链的最后一个中间件功能的情况下,next指向下一个注册的中间稀有链的first-middleware-function。

西门蛋蛋2020/03/18 18:07:36

app.use()在快速应用程序中充当中间件。app.get()app.post()左右不同,您实际上可以使用app.use()而不指定请求URL。在这种情况下,无论何时点击哪个URL,它都会被执行。

西门Mandy2020/03/18 18:07:36

use是一种配置Express HTTP服务器对象的路由所使用的中间件的方法。该方法定义为Express基于Connect的一部分

更新从版本4.x开始,Express不再依赖Connect

Express以前包含的中间件功能现在位于单独的模块中;请参阅中间件功能列表

神奇路易2020/03/18 18:07:36

每次将请求发送到服务器时,都会调用每个app.use(middleware)