中间件 body-parser 原理分析(手写bodyParse)),2024年最新阿里前端开发面试解答

本文深入分析了中间件body-parser的工作原理,包括它如何处理HTTP请求体,特别是对urlencoded和json格式的处理。文章通过创建自定义模块body-me,展示了如何实现接受POST请求的公共逻辑,并探讨了querystring和qs库的区别。此外,还分享了作者的前端开发经验,包括在阿里工作的情况,以及提供了一套全面的Web前端学习资料,旨在帮助开发者提升技能。
摘要由CSDN通过智能技术生成

1、原理分析

从上面的使用案例我们可以分析出一下几点:

  • 首先,body-parser 中间件的作用是给 req 添加属性 body,值为对象,以键值对的形式存储请求体中的参数;

  • 其次,body-parser 只处理 POST 请求;

  • 最后,body-parser 模块导出一个对象,上面有两个方法 urlencoded 和 json,分别处理表单提交和 json 格式的请求体参数。

2、分析 urlencoded、json 公共逻辑

在实现之前我们先分析一下两个方法,首先都需要先读取请求体中的内容,数据传输的类型为 Buffer,转换成字符串后会根据提交方式不同而导致请求体中的内容是查询字符串或者是 json 字符串的区别。

当解析失败时都需要做错误处理,当不是 POST 请求时都需要向下执行其他中间件,而最核心的事就是把请求体中的数据转换成对象挂在 req.body 上。

使用的转换数据的方法不同是唯一的区别,能区分两者的就是请求头 Content-Type 的值,因此我们可以把所有的公共逻辑抽取出来用一个 acceptPost 函数来执行。

3、模块的创建

我们下面创建自己的 bod

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值