日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

express bodyparser_nodejs库express是如何接收inbound json请求的

發(fā)布時間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 express bodyparser_nodejs库express是如何接收inbound json请求的 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這樣幾行簡單的代碼創(chuàng)建一個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){
// 此處編寫業(yè)務邏輯
});

就可以接收json請求了。問題就是,我通過postman發(fā)送的json字符串,是如何被nodejs的express庫處理的呢?

調(diào)試一下,trim_prefix的參數(shù)path即我在postman里測試的API endpoint:

調(diào)用layer的handle_request方法,這個很像SAP ABAP里的IF_HTTP_EXTENSION的HANDLE_REQUEST方法。

express中的中間件,query.js:

這個中間件里也用了直接和undefined做比較的方式:

這里準備開始讀取inbound json了:

通過stream上注冊的回調(diào)函數(shù)onData進行數(shù)據(jù)讀取:
讀取了65018個字節(jié)的數(shù)據(jù):

把讀取的數(shù)據(jù)寫到buffer里:

寫的同時還被第252行的decoder進行了解碼:

當inbound message的數(shù)據(jù)全部讀取完畢后,觸發(fā)End事件,執(zhí)行注冊的回調(diào)done函數(shù):

此時所有讀取的數(shù)據(jù)都存放在變量body里了:

這個json.js負責把body變量里包含的字符串解析成json對象:

由此可見,body-parser這個庫最終使用的仍然是原生的JSON.parse API來完成解析任務。

要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":

總結(jié)

以上是生活随笔為你收集整理的express bodyparser_nodejs库express是如何接收inbound json请求的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。