广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Node中如何使用Express中间件
  • 531
分享到

Node中如何使用Express中间件

2024-04-02 19:04:59 531人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“node中如何使用Express中间件”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node中如何使用Express中间件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起

本文小编为大家详细介绍“node中如何使用Express中间件”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node中如何使用Express中间件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Node中如何使用Express中间件

一、什么是Express中间件

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

二、Express中间件的调用流程

当一个请求到达Express 的服务器之后,可以连续调用多个中间件,从而对这次请求进行预处理。

三、中间件格式

本质上就是function处理函数

注意:中间件函数的形参列表中,必须包含next参数。而路由处理函数中只包含req和res,

// next参数必须在最后一个传入
const mw = (req, res, next) => {
    ...
    // next()必须在最后调用
    next()
}

四、next()函数的作用

next函数是实现多个中间件连续调用的关键,它表示把流转关系转交给下一个中间件或路由。

五、全局生效的中间件

客户端发起的任何请求,到达服务器之后,都会触发的中间件,叫做全局生效的中间件。 通过调用server.use(中间件函数),即可定义一个全局生效的中间件,示例代码如下:

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

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

// 全局生效的中间件,中间件调用顺序以传入顺序为准
server.use(mw,mw1)

六、局部生效的中间件

局部中间件只在某一个指定的路由路径生效

const mw = (req, res, next) => {
    next()
}
const mw1 = (req, res, next) => {
    next()
}
// 局部生效的中间件
server.get('/',mw,(req,res)=>{
    res.send('路径:/')
})



// 定义多个局部生效的中间件
// 1、直接逗号分隔
server.get('/',mw,mw1,(req,res)=>{
    res.send('路径:/')
})
// 2、或者使用数组包含
server.get('/',[mw,mw1],(req,res)=>{
    res.send('路径:/')
})

七、中间件的作用

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

const mw = (req, res, next) => {
    // 添加属性
    req.startTime=new Date()
    next()
}

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

  • 一定要在路由之前注册中间件

  • 客户端发送过来的请求,可以连续调用多个中间件进行处理

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

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

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

九、Express中间件的分类

  • 应用级别的中间件

  • 路由级别的中间件

  • 错误级别的中间件

  • Express内置的中间件

  • 第三方的中间件

详细介绍:

  • 应用级别的中间件

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

    // 全局生效的中间件(应用级别的中间件)
    server.use(mw,mw1)
    // 局部生效的中间件(应用级别的中间件)
    server.get('/',mw,mw1,(req,res)=>{
        res.send(`请求进入服务器的时间:${req.startTime}`)
    })
  • 路由级别的中间件

    绑定到 express.Router()实例上的中间件,叫做路由级别的中间件。它的用法和应用级别中间件没有任何区别。只不过,应用级别中间件是绑定到app实例上,路由级别中间件绑定到 router实例上,代码示例如下:

    const router = require('./router/router')
    // 路由级别的中间件
    router.use((req,res,next)=>{
        next()
    })
  • 错误级别的中间件

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

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

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

    // 人为制造错误
    server.get('/err', (req, res) => {
        throw new Error('人为抛出错误!!!')
        res.send('err Page')
    })
    // 定义错误级别的中间件
    server.use((err, req, res, next) => {
        console.log('发生了错误:' + err.message);
        res.send('Error:'+err.message)
        next()
    })
  • Express内置的中间件

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

    // 配置解析application/JSON格式数据的内置中间件
    server.use(express.json())
    // 配置解析application/x-www-fORM-urlencoded格式数据的内置中间件
    server.use(express.urlencoded({
        extended: false
    }))
    // 测试解析json的内置中间件
    server.post('/user',(req,res)=>{
        // 在服务器,可以使用req.body这个属性来接受客户端发送过来的请求数据
        // 默认情况下,如果不配置解析表单数据的中间件,则req.body默认等于undefined
        console.log(req.body);
        res.send('ok')
    })
    
    // 测试解析urlencoded的内置中间件
    server.post('/book',(req,res)=>{
        console.log(req.body)
        res.send('book ok')
    })
    • express.static快速托管静态资源的内置中间件,例如:html文件、图片、CSS样式等(无兼容性)

    • express.json解析JSON格式的请求体数据(有兼容性,仅在4.16.0+版本中可用)

    • express.urlencoded解析URL-encoded格式的请求体数据(有兼容性,仅在4.16.0+版本中可用)

  • 第三方的中间件

    非Express官方内置的,而是由第三方开发出来的中间件,叫做第三方中间件。在项目中,大家可以按需下载并配置第三方中间件,从而提高项目的开发效率。 例如:在express@4.16.0之前的版本中,经常使用body-parser这个第三方中间件,来解析请求体数据。使用步骤如下:

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

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

    • 使用require导入中间件

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

读到这里,这篇“Node中如何使用Express中间件”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: Node中如何使用Express中间件

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

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

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

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

下载Word文档
猜你喜欢
  • Node中如何使用Express中间件
    本文小编为大家详细介绍“Node中如何使用Express中间件”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node中如何使用Express中间件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2022-10-19
  • node Express的中间件举例分析
    本篇内容主要讲解“node Express的中间件举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node Express的中间件举例分析”吧!Expre...
    99+
    2022-10-19
  • nodejs中Express中间件如何使用
    本篇文章给大家分享的是有关nodejs中Express中间件如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Express是一个基于No...
    99+
    2022-10-19
  • 如何在node的express中使用socket.io
    服务器端server.js代码 var express=require("express"); var http=require("http"); var sio=require("socket....
    99+
    2022-06-04
    如何在 node express
  • Node中Express的错误处理中间件怎么定义
    这篇文章主要介绍“Node中Express的错误处理中间件怎么定义”,在日常操作中,相信很多人在Node中Express的错误处理中间件怎么定义问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2022-10-19
  • Node express路由如何使用
    这篇文章主要介绍“Node express路由如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Node express路由如何使用”文章能帮助大家解决问题。路由是指如何定义应用的端点(URIs...
    99+
    2023-07-04
  • node项目中如何使用express来处理文件的上传
    怎么处理文件上传?下面本篇文章给大家介绍一下node项目中如何使用express来处理文件的上传,希望对大家有所帮助!上传单个文件我们可以使用 express 官方出品的第三方中间件 multer 来处理,先是安装:npm i multer...
    99+
    2023-05-14
    node nodejs Express 文件上传
  • node.js 中间件express-session使用详解
    本文介绍的关于node.js中间件express-session的相关内容,分享出来供大家从参考学习,下面来一起看看详细的介绍: 一、为什么使用session? session运行在服务器端,当客户端第...
    99+
    2022-06-04
    详解 中间件 js
  • node.js如何使用express-fileupload中间件实现文件上传
    本篇内容介绍了“node.js如何使用express-fileupload中间件实现文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目...
    99+
    2023-06-20
  • Node第三方框架Express如何使用
    这篇文章主要讲解了“Node第三方框架Express如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node第三方框架Express如何使用”吧!1....
    99+
    2022-10-19
  • node中Express如何动态设置端口
    小编给大家分享一下node中Express如何动态设置端口,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!能够动态设置端口的话,调...
    99+
    2022-10-19
  • Node中express的身份认证怎么使用
    今天小编给大家分享一下Node中express的身份认证怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Web开发模式...
    99+
    2023-07-05
  • node.js使用express-fileupload中间件实现文件上传
    目录初始化项目 编写服务器 初始化客户端 编写组件 FileUpload Message.js Progress.js 测试 本文使用express作为服务端,使用express-f...
    99+
    2022-11-12
  • node项目中怎么使用express来处理文件的上传
    这篇文章主要介绍“node项目中怎么使用express来处理文件的上传”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“node项目中怎么使用express来处理文件的上传”文章能帮助大家解决问题。上传...
    99+
    2023-07-05
  • Node中的Express和路由模块怎么使用
    今天小编给大家分享一下Node中的Express和路由模块怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Expres...
    99+
    2023-07-05
  • 如何使用express+multer实现node中的图片上传功能
    小编给大家分享一下如何使用express+multer实现node中的图片上传功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容介绍如下所示:在前端中,我们使用ajax来异步上传图...
    99+
    2022-10-19
  • vue+webpack+express中间件接口怎么用
    这篇文章主要介绍vue+webpack+express中间件接口怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!环境:vue 2.9.3; webpack目的:接口的调用跨域方式...
    99+
    2022-10-19
  • node.js怎么使用express-fileupload中间件实现文件上传
    本篇内容介绍了“node.js怎么使用express-fileupload中间件实现文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本...
    99+
    2023-06-17
  • Nodejs中Express 常用中间件 body-parser 实现解析
    写在前面 body-parser是非常常用的一个express中间件,作用是对post请求的请求体进行解析。使用非常简单,以下两行代码已经覆盖了大部分的使用场景。 app.use(bodyParser....
    99+
    2022-06-04
    中间件 常用 Express
  • node框架中Nest.js如何松耦合地整合Express
    这篇文章给大家分享的是有关node框架中Nest.js如何松耦合地整合Express的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Node.js 提供了 http 模块用于监听端...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作