node常用中间件,在node中什么是中间件

  node常用中间件,在node中什么是中间件

  什么是Express中间件?如何使用Node?下面这篇文章就给大家介绍一下快递中间件的简单用法,希望能帮到你!

  node.js速度课程简介:进入学习

  

一、什么是Express中间件

  中间件是指业务流程的中间处理环节。

  

二、Express中间件的调用流程

  请求到达Express的服务器后,可以连续调用几个中间件对请求进行预处理。

  

三、中间件格式

  注意:下一个参数必须包含在中间件函数的参数表中。虽然路由功能仅包含req和res,

  //下一个参数必须在最后传入

  const mw=(req,res,next)={

  .

  //最后必须调用next()

  下一个()

  }

四、next()函数的作用

   next函数是实现多个中间件连续调用的关键,意思是将流关系转移到下一个中间件或路由。

  

五、全局生效的中间件

  任何客户端发起的请求到达服务器后都会触发,这就是所谓的全局有效中间件。

  通过调用server.use(中间件函数),可以定义一个全局有效的中间件。示例代码如下:

  const mw=(req,res,next)={

  下一个()

  }

  const mw1=(req,res,next)={

  下一个()

  }

  //全局有效的中间件。中间件的调用顺序以传入顺序为准。

  Server.use(mw,mw1)

六、局部生效的中间件

  本地中间件只在指定的路由路径上生效。

  const mw=(req,res,next)={

  下一个()

  }

  const mw1=(req,res,next)={

  下一个()

  }

  //部分有效的中间件

  server.get(/),mw,(req,res)={

  Res.send (path:/)

  })

  //定义多个部分有效的中间件。

  //1,直接用逗号分隔

  server.get(/),mw,mw1,(req,res)={

  Res.send (path:/)

  })

  //2,或者使用数组来包含

  server.get(/,[mw,mw1],(req,res)={

  Res.send (path:/)

  })

七、中间件的作用

  多个中间件共享同一个req和res,基于这个特性,我们可以在上游中间件的req或res对象中统一添加自定义属性或方法,用于下游中间件或路由。

  const mw=(req,res,next)={

  //添加属性

  req.startTime=新日期()

  下一个()

  }

八、Express中间件的五个注意点

  路由前一定要注册中间件。

  客户端发出的请求可以通过连续调用多个中间件来处理。

  执行完中间件的业务代码后,不要忘记调用next()函数

  为了防止代码逻辑混乱,不要在调用next()函数后编写额外的代码。

  当连续调用多个中间件时,req和res对象在多个中间件之间共享。

  

九、Express中间件的分类

  应用级中间件

  路由级中间件

  中间件级别错误

  Express的内置中间件

  第三方中间件

  详细介绍:

  应用层中间件

  通过app.use()或app.get()或app.post()绑定到app实例的中间件称为应用级中间件。代码示例如下:

  //全局有效的中间件(应用级中间件)

  服务器使用(mw,mw1)

  //部分有效的中间件(应用级中间件)

  server.get(/),mw,mw1,(req,res)={

  Res.send(`请求进入服务器的时间:$ {req.starttime } `)

  })路由级中间件

  绑定到express的中间件。Router()实例被称为路由级中间件。它的用法和应用级中间件没什么区别。但是,应用层中间件绑定到app实例,路由层中间件绑定到路由器实例。代码示例如下:

  const router=require(。/路由器/路由器’)

  //路由级中间件

  router.use((req,res,next)={

  下一个()

  })错误级别的中间件

  级别中间件的作用:用于捕捉整个项目中的异常错误,防止项目的异常崩溃。

  格式:误差级中间件的函数处理函数中必须有四个参数。参数的顺序是(err,req,res,next)。

  注意:错误级别的中间件,必须注册在所有路由之后!

  //人为错误

  server.get(/err ,(req,res)={

  抛出新错误(‘人为抛出错误!)

  res.send(错误页面)

  })

  //定义错误级别的中间件

  server.use((err,req,res,next)={

  Console.log(出现错误: err . message );

  res.send(Error: err.message)

  下一个()

  })快速内置中间件

  自Express 4.16.0发布以来,Express构建了三个通用中间件,极大地提高了Express项目的开发效率和体验:

  Express.static内置中间件,用于快速托管静态资源,如HTML文件、图片、CSS样式等。(不兼容)

  Express.json解析json格式的请求体数据(兼容,仅在版本4.16.0中可用)

  Express.urlencoded以URL编码的格式解析请求正文数据(兼容,仅在4.16.0版中可用)

  //配置内置中间件解析application/json格式的数据。

  server.use(express.json())

  //配置内置中间件解析application/x-www-form-urlencoded格式的数据。

  server . use(express . urlencoded({

  扩展:假

  }))

  //测试内置中间件解析json

  server.post(/user ,(req,res)={

  //在服务器端,可以使用属性req.body接受客户端发送的请求数据。

  //默认情况下,如果没有配置解析表单数据的中间件,req.body默认等于undefined。

  console . log(req . body);

  res.send(确定)

  })

  //测试用于解析urlencoded的内置中间件

  server.post(/book ,(req,res)={

  console.log(请求体)

  res.send(“预订成功”)

  })第三方中间件

  没有在Express中正式内置,而是由第三方开发的中间件称为第三方中间件。在项目中,您可以按需下载和配置第三方中间件,从而提高项目的开发效率。

  例如,在express@4.16.0之前,通常使用第三方中间件body-parser来解析请求体数据。使用步骤如下:

  运行npm install body-parser来安装中间件

  使用require导入中间件

  调用server.use()注册并使用中间件。

  注意:Express 内置的express.urlencoded 中间件,就是基于body-parser这个第三方中间件进一步封装出来的。

  更多关于node的信息,请访问:nodejs教程!即什么是Express中间件?如何使用Node?更多详情请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: