nodejs库express是如何接收inbound json请求的
这样几行简单的代码创建一个web服务器:
var express = require('express');
var app = express();
var server = require('http').Server(app);
var bodyParser = require('body-parser');app.use(bodyParser.json({limit: '10mb', extended: true}));
然后使用app.post("/getSimilarImage", function(req, res){
// 此处编写业务逻辑
});
就可以接收json请求了。问题就是,我通过postman发送的json字符串,是如何被nodejs的express库处理的呢?
调试一下,trim_prefix的参数path即我在postman里测试的API endpoint:
调用layer的handle_request方法,这个很像SAP ABAP里的IF_HTTP_EXTENSION的HANDLE_REQUEST方法。
express中的中间件,query.js:
这个中间件里也用了直接和undefined做比较的方式:
这里准备开始读取inbound json了:
通过stream上注册的回调函数onData进行数据读取:
读取了65018个字节的数据:
把读取的数据写到buffer里:
写的同时还被第252行的decoder进行了解码:
当inbound message的数据全部读取完毕后,触发End事件,执行注册的回调done函数:
此时所有读取的数据都存放在变量body里了:
这个json.js负责把body变量里包含的字符串解析成json对象:
由此可见,body-parser这个库最终使用的仍然是原生的JSON.parse API来完成解析任务。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
nodejs库express是如何接收inbound json请求的相关推荐
- express bodyparser_nodejs库express是如何接收inbound json请求的
这样几行简单的代码创建一个web服务器: var express = require('express'); var app = express(); var server = require('ht ...
- 使用nodejs和express搭建http web服务
文章目录 简介 使用nodejs搭建HTTP web服务 请求nodejs服务 第三方lib请求post 获取http请求的正文 Express和使用express搭建http web服务 expre ...
- Nodejs之Express框架
Nodejs之Express框架 Express 简介 安装 Express 第一个 Express 框架实例 请求和响应 路由 静态文件 GET 方法 POST 方法 文件上传 Cookie 管理 ...
- NodeJS,EXpress框架的一知半解
一,什么是nodejs node.js是一个基于chrome V8引擎的JavaScript运行环境 (node.js并不是一门新的语言) 二.node.js的特点 1.事件驱动 2.非阻塞I/O 3 ...
- C程序|实现使用OPENSSL库 发送HTTPS请求,并接收数据|例如请求12306获取高铁、动车、火车车次信息的方法
C程序|实现使用OPENSSL库 发送HTTPS请求,并接收数据|例如请求12306获取高铁.动车.火车车次信息的方法 1 HTTPS请求 1.1 研究浏览器发送的请求数据 1.2 代码实现 2 分析 ...
- 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等
内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...
- php要每次循环两个数据库,从前台接收的json数据 2个数组,php同时插入sql数据库,循环要怎么套呢?...
从前台接收的json数据 2个数组,php同时插入sql数据库,循环要怎么套呢? mip版 关注:215 答案:2 悬赏:30 解决时间 2021-01-18 18:47 已解决 2021-01 ...
- java controller json_springMVC的controller层接收前端json数据
1.前端的操作: 对象接收json数据方式:将所需要传的数据转化为json数据,并将这些数据以post方式传到后台的controller层,然后controller层接收json数据,并且是以对象的形 ...
- PHP发送和接收JSON请求
现在微服务中,很多API由于需要传递的参数较多所以要求用包含所有参数的JSON数据作为POST请求的请求体来替代FormData传递参数的方式,在参数量较多时POST JSON要比POST FormD ...
最新文章
- 全国计算机等级考试评卷、成绩处理和证书管理办法
- 算法题:“找出单身狗”--找出一个数组中只出现一次的数字
- soj 4539 贪心+优先队列
- Unicode 转换 ASCII,ASCII 转换 Unicode 在线网站工具
- oracle的查询数据(检索数据)
- 如何自学python-如何自学python语言
- linux 路由表(转)
- 2020年中国林业有害生物发生及防治面积统计情况,林业有害生物防控措施工作的开展刻不容缓「图」
- 微信小程序实现秒杀、拼团、团购等效果
- java前后端分离(增删查改)
- ppt加音乐计算机一级,PPT2016背景音乐该怎么设置?
- Hello Qt——Qt自定义标题栏
- 你的微信号安全吗?(附最新技术分享)
- [渝粤教育] 浙江大学 2021秋冬微积分(一) 参考 资料
- 【CocosBuilder 开发系列之一】cocos2dx使用CocosBuilder(编辑器)完成基础骨骼动画
- PAT A1103 Integer Factorization整数分解 (经典DFS优化)
- 计算机机房雷电接地,关于计算机机房防雷、防静电及接地的若干问题
- 克劳特法matlab,经验模式分解matlab
- 盒子模型基本介绍及知识点
- 二级计算机重点,计算机二级的复习重点
热门文章
- 安卓开发中SpannableString之富文本显示效果
- mysql5.7.23手动配置安装windows版
- BZOJ 4326 NOIP2015 运输计划(树上差分+LCA+二分答案)
- 关于WPF中TextBox使用SelectAll无效的问题的解决办法
- 条件编译用法(#ifndef #define #endif#else)
- 编程之美 求数组中的最长递增子序列
- lucene索引word/pdf/html/txt文件及检索(搜索引擎)
- 关于listview上下滑动imageview图片混乱问题
- 签名build apk: Could not resolve all files for configuration ':app:lintClassPath' 问题
- 文献学习(part20)--Sparse Subspace Clustering: Algorithm, Theory, and Applications