广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Nodejs之Express中间件的分类介绍
  • 147
分享到

Nodejs之Express中间件的分类介绍

NodejsExpress中间件Nodejs中间件Express中间件分类 2022-12-03 22:12:22 147人浏览 八月长安
摘要

目录中间件的分类分别是1 应用级别的中间件2 路由级别的中间件3 错误级别的中间件4 Express内置的中间件5 第三方中间件总结中间件的分类 为了方便大家理解和记忆中间件的使用,

中间件的分类

为了方便大家理解和记忆中间件的使用,Express官方把常见的中间件用法,分成了5大类

分别是

  • 应用级别的中间件
  • 路由级别的中间件
  • 错误级别的中间件
  • Express内置的中间件
  • 第三方的中间件

1 应用级别的中间件

通过app.use()或app.get()或app.post(),绑定到app实例上的中间件,叫做应用级别的中间件,代码示例如下:

只要是直接通过app.xxx调用的,都可以理解为是应用级别的中间件

// 应用级别的中间件(全局中间件)
app.use((req, res, next) => {
    console.log("这是中间件函数")
    next()
})

// 应用级别的中间件(局部中间件)
app.get("/user", mw, (req, res) => {
    res.send('success')
})

2 路由级别的中间件

绑定到express.Router()实例上的中间件,叫做路由级别的中间件。

它的用法和应用级别中间件没有任何区别。

只不过,应用级别中间件是绑定到app实例上,路由级别中间件绑定到router实例上,代码示例如下:

const express = require("express")
const router = express.Router()

// 路由级别的中间件
router.use((req, res, next) => {
    console.log("Time: ", Date.now())
    next()
})

module.exports = router

3 错误级别的中间件

错误级别中间件的作用:专门用来捕获整个项目中发生的异常错误,从而防止项目异常崩溃的问题。

格式:错误级别中间件的function处理函数中,必须有4个形参,形参顺序从前到后,分别是(err, req, res, next)。

// 路由
app.get("/user", (req, res) => {
    throw new Error("服务器内部发生了错误!")
    res.send("Home Page")
})

// 错误级别的中间件,捕获整个项目的异常错误
app.use((err, req, res, next) => {
    console.log("Error: " + err.message)
    res.send("Error: " + err.message)
})

错误级别的中间件,必须注册在所有路由之后,如果放在前面会导致在该中间件之后的错误无法被捕获

4 Express内置的中间件

自Express4.16.0版本开始,Express内置了3个常用的中间件,极大的提高了Express项目的开发效率和体验:

  • express.static快速托管静态资源的内置中间件,例如:html文件、图片、CSS样式等(无兼容性)
  • express.JSON解析SON格式的请求体数据(有兼容性,仅在4.16.0+版本中可用)
  • express.urlencoded解析URL-encoded格式的请求体数据(有兼容性,仅在4.16.0+版本中可用)
// 配置解析 application/json 格式数据的内置中间件
app.use(express.json())

// 配置解析 application/x-www-fORM-urlencoded 格式数据的内置中间件
app.use(express.urlencoded({ extended: false }))

app.post('/user', (req, res)=>{
    // 在服务器, 可以使用 req.body 这个属性,来接受客户端端发过来的请求体数据
    // 在默认情况下,如果把配置解析表单数据的中间价, 则 req.body 默认等于 undefined
    console.log(req.body)
    res.send('ok')
})

除了错误级别的中间件,其他的中间件,必须在路由之前进行配置

5 第三方中间件

非Express官方内置的,而是由第三方开发出来的中间件,叫做第三方中间件。在项目中,大家可以按需下载并配置第三方中间件,从而提高项目的开发效率。

例如:在express@4.16.0之前的版本中,经常使用body-parser这个第三方中间件,来解析请求体数据。

使用步骤如下:

  • 运行npm install body-parser安装中间件
  • 使用require导入中间件
  • 调用app.use()注册并使用中间件

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Nodejs之Express中间件的分类介绍

本文链接: https://www.lsjlt.com/news/174008.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Nodejs之Express中间件的分类介绍
    目录中间件的分类分别是1 应用级别的中间件2 路由级别的中间件3 错误级别的中间件4 Express内置的中间件5 第三方中间件总结中间件的分类 为了方便大家理解和记忆中间件的使用,...
    99+
    2022-12-03
    Nodejs Express中间件 Nodejs中间件 Express中间件分类
  • 深入理解nodejs中Express的中间件
    Express是一个基于Node.js平台的web应用开发框架,在Node.js基础之上扩展了web应用开发所需要的基础功能,从而使得我们开发Web应用更加方便、更加快捷。 举一个例子: 用node.js实...
    99+
    2022-06-04
    中间件 nodejs Express
  • node.js中express中间件body-parser的介绍与用法详解
    前言 Node中的核心模块分两类:一类是自带的核心模块,如http、tcp等,第二类是第三方核心模块,express就是与http对应的第三方核心模块,用于处理http请求。express在3.0版本中自带...
    99+
    2022-06-04
    详解 中间件 js
  • Nodejs+express中间件实现文件上传的方法
    小编给大家分享一下Nodejs+express中间件实现文件上传的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用nodejs做项目时需要用到文件上传的功能,...
    99+
    2023-06-14
  • node Express的中间件举例分析
    本篇内容主要讲解“node Express的中间件举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node Express的中间件举例分析”吧!Expre...
    99+
    2022-10-19
  • express实现中间件的原理分析
    小编给大家分享一下express实现中间件的原理分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!简介中间件机制可以让我们在一个给定的流程中添加一个处理步骤,从而对这个流程的输入或者输出产...
    99+
    2022-10-19
  • Express cookie-parser中间件的示例分析
    这篇文章给大家分享的是有关Express cookie-parser中间件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。入门例子:cookie设置与解析先从最简单的例子...
    99+
    2022-10-19
  • ASP.NET Core的中间件与管道介绍
    今天来讨论一个ASP.NET Core 很重要概念管道和中间件,在ASP.NET Core中,针对HTTP请求采用pipeline也就是通常说的管道方式来处理,而管道容器内可以挂载很...
    99+
    2022-11-12
  • 实现redux, koa, express中间件的示例分析
    小编给大家分享一下实现redux, koa, express中间件的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如果你...
    99+
    2022-10-19
  • 腾讯开源消息中间件TubeMQ总体介绍分析
    目录TubeMQ总体介绍TUBEMQ的性能:与当前MQ横向对比分析:TUBEMQ集群架构:相比KAFKA,TUBEMQ的系统特点:纯Java实现语言: 引入Master协调...
    99+
    2022-11-13
  • 详细介绍PHP中时间处理类Carbon的用法
    本篇文章主要给大家介绍了关于PHP的相关知识,Carbon 是php的日期处理类库(A simple PHP API extension for DateTime.),继承了PHP的 Datetime 类,下面讲解一下该类的使用,希望对大家...
    99+
    2022-08-08
    php
  • JavaScript实现类似Express的中间件系统(实例详解)
    目录Express 的中间件系统实现代码如何实现异步执行链如何将控制权交给中间件函数使用示例应用级中间件与路由级中间件Express 的中间件系统 在 Express 中可以给一个请...
    99+
    2023-02-14
    js Express的中间件系统 Express的中间件
  • idea中断点类型之All和Thread的区别介绍
    All模式  所有的线程都要在当前位置被阻塞,谁先来就先阻塞谁,发生阻塞时其他的线程当前时刻执行到哪里就在哪里进行原地等待。如果此时按下一步F6,那所有的线程都通过阻塞代码...
    99+
    2022-11-13
  • Java中File文件操作类的详细使用介绍
    文章目录 File类的使用File的介绍File常用API判断文件类型-获取文件信息创建文件-删除文件功能遍历文件夹 File类的使用 File的介绍 File的概述: File类在包java.io.Fil...
    99+
    2023-08-21
    java jvm 开发语言
  • Linux系统中的文件类型及文件扩展名的介绍
    这篇文章主要讲解了“Linux系统中的文件类型及文件扩展名的介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统中的文件类型及文件扩展名的介绍”吧!一. 文件类型Lin...
    99+
    2023-06-13
  • 消息中间件ActiveMQ的简单入门介绍与使用
    目录一、什么是消息中间件二、什么是ActiveMQ三、什么时候需要用ActiveMQ四、如何使用ActiveMQ浅谈MQTT1、什么是MQTT2、如何理解MQTT3、如何使用MQTT...
    99+
    2022-11-12
  • koa之中间件流程控制的示例分析
    这篇文章主要为大家展示了“koa之中间件流程控制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“koa之中间件流程控制的示例分析”这篇文章吧。1. ko...
    99+
    2022-10-19
  • MT6169 PVT时间掩码测试中的TPC事件定时和修改MIPI TX资料介绍
    Modify MIPI TX & TPC event Timing for PVT Time mask test--MT6169原资料介绍: 調整Timing 的時候,請調到剛好的位置不用留太多margin,太接近boundary ...
    99+
    2023-06-05
  • MybatisPlus分页查询与多条件查询介绍及查询过程中空值问题的解决
    目录前言一.分页处理1.调用方法传入参数获取返回值2.设置分页拦截器二.条件查询2.1通过QueryWrapper对象来执行分页查询2.2在QueryWrapper对象的基础上使用l...
    99+
    2022-11-13
    MybatisPlus分页查询 MybatisPlus多条件查询 MybatisPlus null
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作