這篇文章主要介紹“nodejs庫(kù)express是怎么接收inbound json請(qǐng)求的”,在日常操作中,相信很多人在nodejs庫(kù)express是怎么接收inbound json請(qǐng)求的問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”nodejs庫(kù)express是怎么接收inbound json請(qǐng)求的”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、于田網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
這樣幾行簡(jiǎn)單的代碼創(chuàng)建一個(gè)web// 此處編寫業(yè)務(wù)邏輯
});
就可以接收json請(qǐng)求了。問題就是,我通過(guò)postman發(fā)送的json字符串,是如何被nodejs的express庫(kù)處理的呢?
調(diào)試一下,trim_prefix的參數(shù)path即我在postman里測(cè)試的API endpoint:
調(diào)用layer的handle_request方法,這個(gè)很像SAP ABAP里的IF_HTTP_EXTENSION的HANDLE_REQUEST方法。
express中的中間件,query.js:
這個(gè)中間件里也用了直接和undefined做比較的方式:
這里準(zhǔn)備開始讀取inbound json了:
通過(guò)stream上注冊(cè)的回調(diào)函數(shù)onData進(jìn)行數(shù)據(jù)讀?。?br/>讀取了65018個(gè)字節(jié)的數(shù)據(jù):
把讀取的數(shù)據(jù)寫到buffer里:
寫的同時(shí)還被第252行的decoder進(jìn)行了解碼:
當(dāng)inbound message的數(shù)據(jù)全部讀取完畢后,觸發(fā)End事件,執(zhí)行注冊(cè)的回調(diào)done函數(shù):
此時(shí)所有讀取的數(shù)據(jù)都存放在變量body里了:
這個(gè)json.js負(fù)責(zé)把body變量里包含的字符串解析成json對(duì)象:
由此可見,body-parser這個(gè)庫(kù)最終使用的仍然是原生的JSON.parse API來(lái)完成解析任務(wù)。
到此,關(guān)于“nodejs庫(kù)express是怎么接收inbound json請(qǐng)求的”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!