express bodyparser_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的原创文章,请关注公众号"汪子熙":
express bodyparser_nodejs库express是如何接收inbound json请求的相关推荐
- nodejs库express是如何接收inbound json请求的
这样几行简单的代码创建一个web服务器: var express = require('express'); var app = express(); var server = require('ht ...
- Express 工具库中的 Application 对象
var express = require('express') var app = express()app.get('/', function (req, res) {res.send('hell ...
- Ionic+Angular+Express实现前后端交互使用HttpClient发送get请求数据并加载显示(附代码下载)
场景 Ionic介绍以及搭建环境.新建和运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106308166 在上面搭建起 ...
- 对比原生Node封装的Express路由 和 express框架路由
文章目录 前言 一.routes.js 1.引入模块 2.changesRes() - send() 3.getFileMime() - type() 4.initStatic 5.server() ...
- Node.js—Express、Express 路由 、Express 中间件、使用 Express 写接口
目标: 能够使用 express.static() 快速托管静态资源 能够使用 express 路由精简项目结构 能够使用常见的 express 中间件 能够使用 express 创建API接口 能够 ...
- Node 学习 | Day03 express (初识Express、Express 路由、Express 中间件、使用 Express 写接口)
Express 初识Express 1.1 Express 简介 1.1.1 什么是 express 1.1.2 进一步理解 Express 1.1.3 Express可以做什么 1.2 Expres ...
- C程序|实现使用OPENSSL库 发送HTTPS请求,并接收数据|例如请求12306获取高铁、动车、火车车次信息的方法
C程序|实现使用OPENSSL库 发送HTTPS请求,并接收数据|例如请求12306获取高铁.动车.火车车次信息的方法 1 HTTPS请求 1.1 研究浏览器发送的请求数据 1.2 代码实现 2 分析 ...
- 去除html标签 express,详解Express条记之静态衬着HTML(新脚进坑)
在日常项目中,我喜欢用Django做后端, 因为大而全 如果只是写一个简单服务的话, Express是更好的选择, Express是基于nodejs的一个后端框架,特点是简单,轻量, 容易搭建, 而且 ...
- php要每次循环两个数据库,从前台接收的json数据 2个数组,php同时插入sql数据库,循环要怎么套呢?...
从前台接收的json数据 2个数组,php同时插入sql数据库,循环要怎么套呢? mip版 关注:215 答案:2 悬赏:30 解决时间 2021-01-18 18:47 已解决 2021-01 ...
最新文章
- DWZ基于ajax重复请求的修复
- Wiki1017(乘积最大)
- UIAutomator输入中文
- 改变元素属性方法_IMR:全球品牌如何结合本土文化元素以提高品牌评价 | 唧唧堂论文解析...
- java mongocollection_MongoDb完结笔记-与java结合
- python打包exe有什么用_Python 打包exe
- aov建立Java模拟,JAVA
- python 类装饰器和继承_python装饰器、继承、元类、mixin,四种給类动态添加类属性和方法的方式(一)...
- DevOps技术学习路线图 初阶+中阶+高阶
- HDOJ1548(BFS)
- Adobe Photoshop CC2014 安装过程
- 360浏览器怎么设置主页
- 计算机网络分层结构概述
- IPFS - 可快速索引的版本化的点对点文件系统
- android 蓝牙自动断开,Android蓝牙:连接()/断开()
- DNS中有哪些值得学习的优秀设计
- pytorch学习(二)梯度:什么叫梯度?什么叫梯度下降
- 关系型数据库的瓶颈 与 优化
- 【读书笔记】《杜月笙全传》读书笔记
- 百度携手华为麒麟深度合作,李彦宏现场被泼水称AI发展总有曲折 | 百度开发者大会
热门文章
- python3下载文件
- 本地安装 SAP Commerce 实例
- SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改
- 解决 Angular 官网下载的库 Schematics 在 windows 环境不支持 .. 的临时解决方案
- 在 SAP CRM Fiori 应用上给 Opportunity 订单添加 note 的后台执行明细
- TypeScript 里 tsconfig.json 文件的作用
- SAP Spartacus应用启用时导入的一些模块
- hybris backoffice创建product遇到的synchronization问题和解答
- SAP UI5 extension component loads standard component
- oModel.create will also send to backend directly