最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs處理http請(qǐng)求實(shí)例詳解之get和post

 更新時(shí)間:2023年01月24日 08:19:09   作者:狗狗的仙女大人  
最近一段時(shí)間在學(xué)習(xí)前端向服務(wù)器發(fā)送數(shù)據(jù)和請(qǐng)求數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于nodejs處理http請(qǐng)求實(shí)例詳解之get和post的相關(guān)資料,需要的朋友可以參考下

前言:http 請(qǐng)求概述

從一個(gè)經(jīng)典的面試題入手,簡(jiǎn)單了解下 http 請(qǐng)求:

Q: 從瀏覽器輸入 url 到頁(yè)面顯示的整個(gè)過(guò)程?

第一步:DNS 解析, 建立 TCP 連接,發(fā)送 http 請(qǐng)求,簡(jiǎn)單來(lái)講就是——

  • 先進(jìn)行 DNS 解析,即通過(guò)域名解析到對(duì)應(yīng)的 ip 地址;
  • 找到 ip 地址后,建立 TCP 連接,即三次握手—— 第一次,客戶端詢問(wèn)服務(wù)器是否可用; 第二次,服務(wù)端告訴客戶端自己可用; 第三次,客戶端表示知道了,接下來(lái)即將訪問(wèn);
  • 然后再去發(fā)送http請(qǐng)求;

第二步:server 端接收到 http 請(qǐng)求,處理并返回;

第三步:客戶端接收到返回的數(shù)據(jù),處理數(shù)據(jù)(如渲染頁(yè)面,執(zhí)行js)

nodejs 處理 get 請(qǐng)求

簡(jiǎn)單的 demo

const http = require('http')
const querystring = require('querystring')

// GET
const server = http.createServer((req, res) => {
    console.log('req.method:', req.method) // GET
    const url = req.url // 獲取請(qǐng)求的 url
    req.query = querystring.parse(url.split('?')[1]) // 解析 querystring
    res.end(JSON.stringify(req.query)) // 將 querystring 返回
})
server.listen(8000)
console.log('GET OK~~~')

通過(guò) require(‘http’) 獲取 Nodejs 原生提供的 http 模塊。

通過(guò) http.createServer 創(chuàng)建一個(gè) server。該方法接收一個(gè)函數(shù),返回一個(gè) server 對(duì)象。

  • req:客戶端傳過(guò)來(lái)的信息
  • res: 服務(wù)端要返回的數(shù)據(jù)
  • res.end: 結(jié)束并返回?cái)?shù)據(jù)。只能發(fā)送 Buffer 或 String 類型的數(shù)據(jù)
  • querystring:nodejs 自帶的模塊。
  • querystring.parse: 將字符串轉(zhuǎn)換為對(duì)象。比如:hobby=baba&name=gougou會(huì)被轉(zhuǎn)為{"hobby":"baba","name":"gougou"}
  • server.listen(path, [callback]):在指定路徑監(jiān)聽(tīng)。 異步。

測(cè)試一下

我們可以通過(guò) node 文件名 的方式運(yùn)行我們的代碼:

然后可以去瀏覽器測(cè)試一下:訪問(wèn)localhost:8000,然后模擬 get 請(qǐng)求,看是否能返回 querystring 的內(nèi)容。

再看下終端:

nodejs 處理 post 請(qǐng)求

簡(jiǎn)單的demo

const http = require('http')

const server = http.createServer((req, res) => {
    console.log('req content-type:', req.headers['content-type'])
    let postData = '' // 存放客戶端傳來(lái)的數(shù)據(jù)
    req.on('data', chunk => {
        console.log('chunk', chunk) // 二進(jìn)制格式
        postData += chunk.toString() // 將二進(jìn)制格式轉(zhuǎn)成字符串格式,拼接到 postData 上
    })
    req.on('end', () => {
        console.log('postData:', postData)
        res.end('芽~~~~~~~狗狗來(lái)啦!')
    })
})
server.listen(8000)
console.log('POST OK~~~')
  • req.on('data', callback):接受客戶端傳來(lái)的數(shù)據(jù),以數(shù)據(jù)流的方式。
  • chunk:二進(jìn)制格式,可通過(guò)toString轉(zhuǎn)成字符串格式。

測(cè)試一下

post 請(qǐng)求我們可以使用 postman 工具來(lái)調(diào)試。如圖(使用方式見(jiàn)圖就一目了然了,就不一一贅述了):

點(diǎn)擊 send 發(fā)送請(qǐng)求后,可以看下終端:

補(bǔ)充:postman

Postman 是一款常用的接口調(diào)試工具,可以發(fā)送幾乎所有類型的 HTTP 請(qǐng)求。
我們?cè)趯W(xué)習(xí)和使用 nodejs 的過(guò)程中,可以借助它來(lái)調(diào)試接口。

postman 的下載

可以在 chrome 上安裝擴(kuò)展程序(前提是能連接到谷歌商店)

可以下載安裝 postman 客戶端工具。

總結(jié) 

到此這篇關(guān)于nodejs處理http請(qǐng)求實(shí)例詳解之get和post的文章就介紹到這了,更多相關(guān)nodejs處理http請(qǐng)求get和post內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入理解nodejs搭建靜態(tài)服務(wù)器(實(shí)現(xiàn)命令行)

    深入理解nodejs搭建靜態(tài)服務(wù)器(實(shí)現(xiàn)命令行)

    這篇文章主要介紹了深入理解nodejs搭建靜態(tài)服務(wù)器(實(shí)現(xiàn)命令行),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Nodejs中的計(jì)時(shí)器(setTimeout?setIntervals?etImmediate)使用案例解析

    Nodejs中的計(jì)時(shí)器(setTimeout?setIntervals?etImmediate)使用案例解析

    這篇文章主要介紹了Nodejs中的計(jì)時(shí)器(setTimeout?setIntervals?etImmediate)使用案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Node.js中的npm單獨(dú)與批量升級(jí)依賴包的方式超詳細(xì)講解

    Node.js中的npm單獨(dú)與批量升級(jí)依賴包的方式超詳細(xì)講解

    npm outdated僅檢查所有已安裝包的依賴關(guān)系,并將當(dāng)前版本遠(yuǎn)程倉(cāng)庫(kù)中的最新版本進(jìn)行對(duì)比,不會(huì)升級(jí),這篇文章主要介紹了Node.js中的npm單獨(dú)與批量升級(jí)依賴包的方式超詳細(xì)講解,需要的朋友可以參考下
    2024-02-02
  • express 項(xiàng)目分層實(shí)踐詳解

    express 項(xiàng)目分層實(shí)踐詳解

    這篇文章主要介紹了express 項(xiàng)目分層實(shí)踐詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Node+Express搭建HTTPS服務(wù)的實(shí)現(xiàn)

    Node+Express搭建HTTPS服務(wù)的實(shí)現(xiàn)

    最近開(kāi)發(fā)需要搭建一個(gè)https的服務(wù),正好最近在用nodejs和express,本文章主要介紹了Node+Express搭建HTTPS服務(wù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Node.js中的緩沖與流模塊詳細(xì)介紹

    Node.js中的緩沖與流模塊詳細(xì)介紹

    這篇文章主要介紹了Node.js中的緩沖與流模塊詳細(xì)介紹,本文講解了緩沖(buffer)模塊、類:Buffer、寫(xiě)入緩沖區(qū)、復(fù)制緩沖區(qū)、流模塊等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • 基于nodejs 的多頁(yè)面爬蟲(chóng)實(shí)例代碼

    基于nodejs 的多頁(yè)面爬蟲(chóng)實(shí)例代碼

    本篇文章主要介紹了基于nodejs 的多頁(yè)面爬蟲(chóng) ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • 你所未知的3種Node.js代碼優(yōu)化方式

    你所未知的3種Node.js代碼優(yōu)化方式

    這篇文章主要為大家介紹了3種你所未知的Node.js代碼優(yōu)化方式,幫助大家剛好的進(jìn)行代碼優(yōu)化,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Node.js API詳解之 assert模塊用法實(shí)例分析

    Node.js API詳解之 assert模塊用法實(shí)例分析

    這篇文章主要介紹了Node.js API詳解之 assert模塊用法,結(jié)合實(shí)例形式分析了Node.js API中assert模塊基本函數(shù)、功能、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • Linux 安裝nodejs環(huán)境及路徑配置詳細(xì)步驟

    Linux 安裝nodejs環(huán)境及路徑配置詳細(xì)步驟

    大家都知道linux安裝nodejs有兩種比較常用的方法,一種解壓即可用的方法操作比較簡(jiǎn)便,另一種方法通過(guò)編譯來(lái)安裝,本文重點(diǎn)給大家講解第一種方法,感興趣的朋友跟隨小編一起看看吧
    2021-11-11

最新評(píng)論

武鸣县| 巩留县| 通化市| 建昌县| 资兴市| 岗巴县| 绥芬河市| 综艺| 赤城县| 青河县| 丰都县| 岗巴县| 沂源县| 南澳县| 肥东县| 江口县| 敦煌市| 宜良县| 肇东市| 乌兰察布市| 启东市| 布尔津县| 元朗区| 肥乡县| 西华县| 通化市| 松滋市| 秦皇岛市| 乃东县| 高碑店市| 石台县| 获嘉县| 乌审旗| 忻州市| 鹤庆县| 霍州市| 沽源县| 邮箱| 宁城县| 含山县| 古交市|