NodeJS http服务端获取POST请求数据
http服务
我们知道,使用nodejs标准库的http模块创建一个http服务很简单,如下:
const http = require('http');const hostname = '127.0.0.1';
const port = 3000;const server = http.createServer((req, res) => {res.statusCode = 200;res.setHeader('Content-Type', 'text/plain');res.end('Hello World');
});server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);
});
http.createServer
传了一个回调函数作为参数,每当一个请求进来时,会产生一个request
事件,从而让该回调函数被调用一次,该回调函数接收两个参数,req表示请求对象,res表示响应对象,但是需要注意的是,req对象中包含了http请求的所有请求头,但是却不包含Post请求的数据(request body)。
获取请求数据
那么我们如何得到Post请求的数据呢?事实上,请求数据是以流的方式从客户端(浏览器)传到服务端的,当有数据到达时,req对象会产生一个data
事件,当数据传输完毕时,req对象会产生一个end
事件,因此,我们只需要将data
事件中得到的数据暂时保存起来,当end
事件产生时表示数据已经传输完,便可以开始使用得到的请求数据,代码示例如下:
const hostname = '127.0.0.1';
const port = 3000;const server = http.createServer((req, res) => {let data = []req.on('data', chunk => {data.push(chunk) // 将接收到的数据暂时保存起来})req.on('end', () => {console.log(JSON.parse(data)) // 数据传输完,打印数据的内容})// res.statusCode = 200;// res.setHeader('Content-Type', 'text/plain');// res.end('Hello World');
});server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);
});
使用express
如果使用express的话,就非常方便了,可以使用body-parser
直接将body数据解析到req对象中:
const bodyParser = require('body-parser')app.use(bodyParser.urlencoded({extended: true})
)app.use(bodyParser.json())app.post('/todos', (req, res) => {console.log(req.body) // 直接通过req对象中的body属性就可以得到请求数据
})
NodeJS http服务端获取POST请求数据相关推荐
- 怎么调用获取被创建的预制体_Go 语言 Web 编程系列—— 获取用户请求数据(上)...
0.GET/POST 请求数据 在 PHP 中,可以直接通过全局变量 $_GET 和 $_POST 快速获取 GET/POST 请求数据,GET 请求数据主要是 URL 查询字符串中包含的参数,以前面 ...
- NodeJS SSR服务端渲染:公共代码区分客户端和服务端
SSR服务端渲染(英语:server side render)指一般情况下,一个web页面的数据渲染完全由客户端或者浏览器端来完成.先从服务器请求,然后到页面:再通过AJAX请求到页面数据并把相应的数 ...
- android从服务端获取json解析显示在客户端上面,Android服务端获取json解析显示在客户端上面.doc...
Android服务端获取json解析显示在客户端上面 Android从服务端获取json解析显示在客户端上面 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比 ...
- nodejs ajax进度条,Ajax异步文件上传与NodeJS express服务端处理的示例分析
Ajax异步文件上传与NodeJS express服务端处理的示例分析 发布时间:2021-07-24 11:17:21 来源:亿速云 阅读:79 作者:小新 这篇文章主要介绍Ajax异步文件上传与N ...
- flux服务器推消息,服务端主动推送数据,除了 WebSocket 你还能想到啥?
原标题:服务端主动推送数据,除了 WebSocket 你还能想到啥? 来自公众号: 江南一点雨 在 上篇文章 中,松哥和大家分享了 WebFlux 的基本用法,小伙伴们已经了解到使用 WebFlux ...
- Go gin获取post请求数据
Go gin获取post请求数据 注意:是post请求 一.获取表单提交的数据 1.contxt.PostForm("username") 获取表单中的name属性对应的值 示例代 ...
- 联系微信ID服务器失败,微信小程序-新用户获取微信手机号登录服务端获取不到unionid情况...
需求:微信小程序进行获取手机号登录时,登录失败 授权微信用户信息 授权微信手机号 bindLogin: function(e) { wx.hideLoading(); console.log(e.de ...
- 年货来咯:精选年度最受欢迎干货,覆盖客户端、服务端、前端、数据、算法……...
????新年将至,年味渐浓.???? ????闲鱼技术年货,如期而至.???? 从2018年春到今天,我们共发布了216篇原创技术文章,开设在公众号.掘金.知乎.头条.facebook.twitter ...
- 【HMS Core】华为登录后返回错误码 8 、账号服务如何授权、推送服务端获取用户信息异常
1.[HMS core][游戏登陆][问题描述] 调用华为登录后返回错误码 8 [解决方案] 错误码8的话一般在定义为内部错误(引起该错误码的原因很多),但是一般重试基本可以解决该问题(错误码).如果 ...
最新文章
- GPU编程和流式多处理器
- Training RNNs as Fast as CNNs
- Response_功能介绍
- 如何用 Gitlab 做团队内的 Code Review
- 用HttpReports快速搭建API分析平台
- 使用TopShelf做windows服务
- uniapp ---- 添加分页
- ARKit:也许是 iPhone 十周年最好的新开始
- pat A1032:sharing 题解(简单静态链表)
- 折腾AX2012,安装成功,发帖庆祝
- 国家/地区编码中文对照表
- mySql笔记之基础篇(参看尚硅谷视频)
- 解决win10下PPT打不开,显示内容有问题,提示修复但修复不成功问题
- 微信小程序时间显示几分钟前、几小时前、几天前....
- MY SQL 数据库升级
- github监控平台hawkeye搭建
- 神经网络—卷积神经网络CNN
- QT之CheckBox单项选择与多项选择
- 百度文库免费下+PDF免费转,你错过了嘛?
- java和python中函数式编程
热门文章
- python数字类型-Python数字类型介绍
- python语言可以应用在哪些方面-Python语言的应用领域主要有哪些?
- python读音发音器-python3 - 文本读音器
- python 框架好学吗-python的flask框架难学吗
- 流程的python-什么时候学流畅的python合适?
- python3-Python3 数字(Number)
- python可以做什么游戏-用python做游戏的细节详解
- python适合做后端开发吗-用Python开发app后端有优势吗
- 零基础自学python看什么书-学习Python可以看书籍学习吗?老男孩Python入门课程
- python3.7和3.8的区别-Python 3.8 有什么新变化