Nodejs教程07:处理接收到的POST数据_nodejs 接收post请求 转换为数组-程序员宅基地

技术标签: Nodejs  

阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里

处理POST数据

示例代码:/lesson07/server.js

POST数据量通常较大,通常不会一次性从客户端发送到服务端,具体每次发送的大小由协议,以及客户端与服务端之间的协商决定。

因此,Nodejs在处理POST数据时,需要通过request对象的data事件,获取每次传输的数据,并在end事件调用时,处理所有获取的数据。

request对象是一个http.IncomingMessage 类,而它实现了可读流接口,因此具有了可读流的data、end等事件。

需要注意的是,data事件中传入的参数是Buffer,Buffer只是一个二进制的数据,它有可能只是一段字符串数据,也有可能是文件的一部分,所以处理Buffer数据的时候要注意这一点。

const http = require('http')
const querystring = require('querystring')

const server = http.createServer((req, res) => {
  let bufferArray = []  // 用于存储data事件获取的Buffer数据。

  req.on('data', (buffer) => {
    bufferArray.push(buffer)  // 将Buffer数据存储在数组中。
  })

  req.on('end', () => {
    // Buffer 类是一个全局变量,使用时无需 require('buffer').Buffer。
    // Buffer.concat方法用于合并Buffer数组。
    const buffer = Buffer.concat(bufferArray)
    // 已知Buffer数据只是字符串,则可以直接用toString将其转换成字符串。
    const post = querystring.parse(buffer.toString())
    console.log(post)
  })
})

server.listen(8080)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chencl1986/article/details/88044660

智能推荐

《python程序设计教程》第八章类与对象课后习题_设计一个timer类,该类包括-程序员宅基地

文章浏览阅读8.9k次,点赞22次,收藏100次。设计一个Circle类来表示圆,这个类包含圆的半径以及求面积和周长的函数。在使用这个类创建半径为1~10的圆,并计算出相应的面积和周长。import mathclass Circle: def __init__(self, r): self.radius = r def getArea(self): return math.pi * self.radius ** 2 def getPerimeter(self): ret._设计一个timer类,该类包括

剑指 Offer 31. 栈的压入、弹出序列【无取巧,易于理解!】-程序员宅基地

文章浏览阅读331次。看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最“笨”最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法。输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = _剑指 offer 31. 栈的压入、弹出序列

手把手用虚拟机搭建spark集群_virtualbox spark-程序员宅基地

文章浏览阅读1.1k次。配置spark集群安装虚拟机和ubuntu环境点击此链接下载VirtualBox虚拟机,按照提示正常安装。打开VirtualBox软件,点击管理的全局设定;点击常规,更改默认虚拟电脑位置即把虚拟环境放在哪。具体图示如下:新建虚拟环境,点击新建,输入环境名称,类型和版本,按下图填写即可;点击下一步,内存大小我选取的是1500(本机运行内存为8gb),点击下一步;现在创建虚拟硬盘,点..._virtualbox spark

零基础HTML教程(23)--表单_html 23%-程序员宅基地

文章浏览阅读1.9k次,点赞8次,收藏11次。本文目录1. 前言2. 表单标签3. 表单输入标签3.1 文本框3.2 密码框3.3 单选框3.4 复选框3.5 按钮4. 小结1. 前言之前我们所讲的一些系列各种HTML标签,都是为了给用户展示一些东西。实际上HTML是可以让用户输入信息的,例如登录时输入用户名密码;购买东西时选择型号、颜色;发布博客时输入标题、内容。HTML通过表单及输入标签,来实现用户输入内容的收集。2. 表单标签表单标签,格式为<form>表单内容</form>,中间的表单内容部分就是用来让用户输_html 23%

在Azure Artifacts中创建feed,并利用pipeline在项目中编译和发布_azure devops pipeline artifacts-程序员宅基地

文章浏览阅读517次。Azure Artifacts是Azure DevOps组织中的存储库,您可以在其中管理代码库的依赖项。 Azure Artifacts可以存储您的工件和二进制文件。它提供了一组依赖项的容器,称为feed。有权访问提要的开发人员可以轻松使用或发布软件包。当您使用新功能或错误修复程序更新软件包并运行测试以确保其正常工作时,请提高软件包的版本号。然后提交更改。程序包的管道可以查看提交,并在Azure Artifacts中使用新版本号创建新工件。不用担心,对于那些依赖该版本的应用程序,仍然具有较低版本号的旧软_azure devops pipeline artifacts

Lucene-2.2.0 源代码阅读学习(36)-程序员宅基地

文章浏览阅读67次。关于MultiTermQuery查询。这里研究FuzzyQuery查询。MultiTermQuery是一个抽象类,继承自它的一种有3个,分别为:FuzzyQuery、WildcardQuery、RegexQuery,其中RegexQuery使用了第三方提供的服务,可以使用正则表达式,如果你对正则表达式很熟悉,可以尝试着使用RegexQuery查询。FuzzyQuery查询,即模糊查..._minimumsimilarity设置

随便推点

python3.7 视频运动人体光流提取轨迹方法(1:稀疏轨迹LK方法)_光流轨迹-程序员宅基地

文章浏览阅读1.4k次。**python3.7 视频运动人体光流提取轨迹方法(1:稀疏轨迹LK方法)**#encoding:utf-8‘’’Lucas-Kanade trackerLucas-Kanade sparse optical flow demo. Uses goodFeaturesToTrackfor track initialization and back-tracking for match verificationbetween frames.Usage#lk_track.py [<vi_光流轨迹

手搓自适应表格-程序员宅基地

文章浏览阅读79次。原型实现方法外层div 值需要上右下的边框 display: flex; border: 1px solid #dbdbdb; border-left: none; margin-bottom: 10px;内层的div 只需要有左边框 display: flex; align-items: center; border-left: 1px solid #dbdbdb; padding: 5px 2px; font-size:

音频驱动之UDA1341芯片之L3接口介绍_ud1341-程序员宅基地

文章浏览阅读1.6k次。我们接着上一节的将,我们I2S传输声音的接口是标准的但是控制接口却各有不一样,比如说我们的UDA1341用的接口叫做L3接口,WM8960等可能用的I2C接口或者自己定义了一个三线接口我们先来看看L3接口是怎么传输控制信号的,发出信息啊,控制音量啊实际上就是读写寄存器,转换的就是读写某个地址,把某个数据读出来或者写进去从这个L3接口怎么传输地址信息和数据信息呢,我们来看看UDA1341_ud1341

HTML表格习题练习_html 表单练习图片-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏35次。文章目录一、会议日程安排表二、课程表设计一、会议日程安排表<!DOCTYPE html><html><head> <title>表格</title></head><body><h3 align="center">设置单元格跨列、跨行属性</h3><center><table border="1" bordercolor="#3366ff"><capt_html 表单练习图片

POJ 1422 Air Raid (二分图最小路径覆盖)_poj 1422 二分图-程序员宅基地

文章浏览阅读166次。Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through town’s streets you can..._poj 1422 二分图

pku1734 Floyd_Warshal算法应用 解题报告_算法 有n个景点,有m条路线,每个景点的攻略价值是a-程序员宅基地

文章浏览阅读1k次。一、题目:Sightseeing trip二、题意:给出N个旅游景点与M跳旅游路线,选择一条总路径最短且旅游景点又最多,而且是从头到尾是一条回路。三、解决办法: 此题其实是经典的Floyd_Warshal算法。四、源代码:#include "stdio.h"#include "string.h" const int n = 101;const int _算法 有n个景点,有m条路线,每个景点的攻略价值是a

推荐文章

热门文章

相关标签