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请求数据相关推荐

  1. 怎么调用获取被创建的预制体_Go 语言 Web 编程系列—— 获取用户请求数据(上)...

    0.GET/POST 请求数据 在 PHP 中,可以直接通过全局变量 $_GET 和 $_POST 快速获取 GET/POST 请求数据,GET 请求数据主要是 URL 查询字符串中包含的参数,以前面 ...

  2. NodeJS SSR服务端渲染:公共代码区分客户端和服务端

    SSR服务端渲染(英语:server side render)指一般情况下,一个web页面的数据渲染完全由客户端或者浏览器端来完成.先从服务器请求,然后到页面:再通过AJAX请求到页面数据并把相应的数 ...

  3. android从服务端获取json解析显示在客户端上面,Android服务端获取json解析显示在客户端上面.doc...

    Android服务端获取json解析显示在客户端上面 Android从服务端获取json解析显示在客户端上面 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比 ...

  4. nodejs ajax进度条,Ajax异步文件上传与NodeJS express服务端处理的示例分析

    Ajax异步文件上传与NodeJS express服务端处理的示例分析 发布时间:2021-07-24 11:17:21 来源:亿速云 阅读:79 作者:小新 这篇文章主要介绍Ajax异步文件上传与N ...

  5. flux服务器推消息,服务端主动推送数据,除了 WebSocket 你还能想到啥?

    原标题:服务端主动推送数据,除了 WebSocket 你还能想到啥? 来自公众号: 江南一点雨 在 上篇文章 中,松哥和大家分享了 WebFlux 的基本用法,小伙伴们已经了解到使用 WebFlux ...

  6. Go gin获取post请求数据

    Go gin获取post请求数据 注意:是post请求 一.获取表单提交的数据 1.contxt.PostForm("username") 获取表单中的name属性对应的值 示例代 ...

  7. 联系微信ID服务器失败,微信小程序-新用户获取微信手机号登录服务端获取不到unionid情况...

    需求:微信小程序进行获取手机号登录时,登录失败 授权微信用户信息 授权微信手机号 bindLogin: function(e) { wx.hideLoading(); console.log(e.de ...

  8. 年货来咯:精选年度最受欢迎干货,覆盖客户端、服务端、前端、数据、算法……...

    ????新年将至,年味渐浓.???? ????闲鱼技术年货,如期而至.???? 从2018年春到今天,我们共发布了216篇原创技术文章,开设在公众号.掘金.知乎.头条.facebook.twitter ...

  9. 【HMS Core】华为登录后返回错误码 8 、账号服务如何授权、推送服务端获取用户信息异常

    1.[HMS core][游戏登陆][问题描述] 调用华为登录后返回错误码 8 [解决方案] 错误码8的话一般在定义为内部错误(引起该错误码的原因很多),但是一般重试基本可以解决该问题(错误码).如果 ...

最新文章

  1. GPU编程和流式多处理器
  2. Training RNNs as Fast as CNNs
  3. Response_功能介绍
  4. 如何用 Gitlab 做团队内的 Code Review
  5. 用HttpReports快速搭建API分析平台
  6. 使用TopShelf做windows服务
  7. uniapp ---- 添加分页
  8. ARKit:也许是 iPhone 十周年最好的新开始
  9. pat A1032:sharing 题解(简单静态链表)
  10. 折腾AX2012,安装成功,发帖庆祝
  11. 国家/地区编码中文对照表
  12. mySql笔记之基础篇(参看尚硅谷视频)
  13. 解决win10下PPT打不开,显示内容有问题,提示修复但修复不成功问题
  14. 微信小程序时间显示几分钟前、几小时前、几天前....
  15. MY SQL 数据库升级
  16. github监控平台hawkeye搭建
  17. 神经网络—卷积神经网络CNN
  18. QT之CheckBox单项选择与多项选择
  19. 百度文库免费下+PDF免费转,你错过了嘛?
  20. java和python中函数式编程

热门文章

  1. python数字类型-Python数字类型介绍
  2. python语言可以应用在哪些方面-Python语言的应用领域主要有哪些?
  3. python读音发音器-python3 - 文本读音器
  4. python 框架好学吗-python的flask框架难学吗
  5. 流程的python-什么时候学流畅的python合适?
  6. python3-Python3 数字(Number)
  7. python可以做什么游戏-用python做游戏的细节详解
  8. python适合做后端开发吗-用Python开发app后端有优势吗
  9. 零基础自学python看什么书-学习Python可以看书籍学习吗?老男孩Python入门课程
  10. python3.7和3.8的区别-Python 3.8 有什么新变化