欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js+postman實現(xiàn)模擬HTTP服務器與客戶端交互

 更新時間:2021年07月29日 15:21:01   作者:啊a阿花  
本文主要介紹了node.js+postman實現(xiàn)模擬HTTP服務器與客戶端交互,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

當應用程序(客戶端)需要某一個資源時,可以向一臺服務器通過http請求獲取到這個資源。提供資源的服務器就是web服務器(本文用node.js創(chuàng)建),用postman模擬客戶端向服務器發(fā)送請求。

在這里插入圖片描述

一、node搭建HTTP服務器

node中使用 http 模塊來創(chuàng)建 HTTP 服務器, 每當接收到新的請求時,request 事件會被調(diào)用,并提供兩個對象:一個請求req(http.IncomingMessage 對象)和一個響應res(http.ServerResponse 對象)。

request 提供了請求的詳細信息。 通過它可以訪問請求頭和請求的數(shù)據(jù)。(客戶端–>服務器)

response 用于構(gòu)造要返回給客戶端的數(shù)據(jù)(服務器–>客戶端)。下面是一個簡單的HTTP web服務器示例。

下面就是一個簡單的HTTP服務器的例子

//導入http模塊
const http = require('http')

// 創(chuàng)建http服務器
const server = http.createServer((req, res) => {
		//設(shè)置 statusCode 屬性為 200,以表明響應成功
				res.statusCode = 200
  		// res本質(zhì)上繼承了stream.Writable的類
        // 向客戶端發(fā)送完響應頭和正文后告訴服務器本次消息傳輸結(jié)束
        res.end("hollow server")
        // 相當于res.writer("hollow server")+res.end()
    })
    // 監(jiān)聽服務器,當服務器就緒時,listen 回調(diào)函數(shù)會被調(diào)用
    //控制臺打印啟動成功
server.listen('8089', 'localhost', () => {
    console.log("啟動成功")
})

這時候你的本地服務器就搭建完畢了,可以去瀏覽器打開localhost:8089查看

在這里插入圖片描述

二、HTTP服務器處理get請求

Postman 是一種常用的接口測試工具,可以發(fā)送幾乎所有類型的HTTP請求。Postman適用于不同的操作系統(tǒng),Postman Mac、Windows X32、Windows X64、Linux系統(tǒng),還支持postman 瀏覽器擴展程序、postman chrome應用程序等。

下載也十分簡單,可以點擊這里直接去官網(wǎng)下載👉👉👉 Download Postman

1、postman發(fā)送get請求

postman中新建一個request請求,在Enter request url 中填寫上面我們用node.js創(chuàng)建的HTTP服務器的主機地址以及用戶名和密碼http://localhost:8089/login?username=ahua&password=123,請求類型選擇GET,點擊send,postman就會向服務器發(fā)送一個get請求

在這里插入圖片描述

2、服務器解析

服務器這邊接收到客戶端(postman)的get請求,對發(fā)送過來的數(shù)據(jù)進行處理

const http = require('http')
    // 處理url的模塊
const url = require('url')
    // 處理query的模塊
const qs = require('querystring')
const server = new http.Server((req, res) => {
    // request對象中封裝了客戶端給我們服務器傳遞過來的所有信息 
    // 對url進行解析
    const { pathname, query } = url.parse(req.url)
    if (pathname === '/login') {
        //console.log(query)
            // qs的parse方法可以對query進行處理
            // 將字符串類型轉(zhuǎn)換為js對象  username=ahua&password=123  -->  {username: 'ahua',password: 123}
        //console.log(qs.parse(query))
        const { username, password } = qs.parse(query)
        console.log(username, password)
        res.end('請求結(jié)果')
    }
    console.log(req.url)
    //打印請求類型
    console.log(req.method)
    //請求頭
    console.log(req.headers)
})
server.listen('8089', 'localhost', () => {
    console.log("serve啟動成功")
})

服務器這邊的解析結(jié)果

在這里插入圖片描述

三、HTTP服務器處理post請求

1、postman發(fā)送post請求

上面get請求中將用戶名和密碼放在地址欄可能不夠安全,處理賬號密碼想穩(wěn)妥一點,現(xiàn)在將他們放在body里用json文件傳給服務器。

下圖所示便是postman將username和password放在json文件中通過bady傳遞給服務器的操作

在這里插入圖片描述

2、服務器解析

服務器這邊接收到客戶端(postman)的post請求,對發(fā)送過來的數(shù)據(jù)進行處理。首先應該判斷是否為post請求,然后拿到body中的數(shù)據(jù),再對數(shù)據(jù)進行解析。

const http = require('http')
    // 處理url的模塊
const url = require('url')
const server = new http.Server((req, res) => {
    // 獲取客戶端傳過來的url中的pathname
    const { pathname } = url.parse(req.url)
        // 判斷是否為login
    if (pathname === '/login') {
        // 判斷客戶端發(fā)送的是否為post請求
        if (req.method === 'POST') {
            // 定義客戶端傳過來數(shù)據(jù)的默認編碼格式
            req.setEncoding('utf-8')
                // req.setEncoding('binary') binary定義二進制編碼
                // 拿到body中的數(shù)據(jù)
                // body中的數(shù)據(jù)是通過流來寫入的
                // 當監(jiān)聽到data事件,獲取到輸入流,也就是body中相關(guān)的內(nèi)容,可以返回這個data的結(jié)果
            req.on('data', (data) => {
                // JSON.parse()把對象中的字符串轉(zhuǎn)成js對象 
                //  {"username":"阿花","passward":"123"}  ---> {username: 'ahua',password: 123}
                const { username, passward } = JSON.parse(data)
                console.log(username, passward)
            })
        }
    }

    res.end('請求結(jié)果')

})
server.listen('8089', 'localhost', () => {
    console.log("serve啟動成功")
})

服務器打印請求結(jié)果

在這里插入圖片描述

這樣就完成了一個簡單的服務器交互流程。

到此這篇關(guān)于node.js+postman實現(xiàn)模擬HTTP服務器與客戶端交互的文章就介紹到這了,更多相關(guān)node.js+postman 服務器與客戶端交互內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • node實現(xiàn)爬蟲的幾種簡易方式

    node實現(xiàn)爬蟲的幾種簡易方式

    這篇文章主要給大家介紹了關(guān)于node實現(xiàn)爬蟲的幾種簡易方式,文中通過示例代碼介紹的非常詳細,對大家學習或者使用node具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • nodejs6下使用koa2框架實例

    nodejs6下使用koa2框架實例

    本篇文章主要介紹了nodejs6下使用koa2框架實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 在Node.js中使用Express實現(xiàn)視頻評論的列表展示和刪除功能

    在Node.js中使用Express實現(xiàn)視頻評論的列表展示和刪除功能

    在現(xiàn)代Web應用中,視頻內(nèi)容和互動功能(如評論)的結(jié)合極大地增加了用戶的參與度,本文將通過一個具體的例子,展示如何在Node.js環(huán)境中使用Express框架來實現(xiàn)視頻評論的列表展示和刪除功能,需要的朋友可以參考下
    2024-04-04
  • 淺談KOA2 Restful方式路由初探

    淺談KOA2 Restful方式路由初探

    這篇文章主要介紹了淺談KOA2 Restful方式路由初探,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • node+socket實現(xiàn)簡易聊天室功能

    node+socket實現(xiàn)簡易聊天室功能

    這篇文章主要為大家詳細介紹了node+socket實現(xiàn)簡易聊天室功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 基于socket.io+express實現(xiàn)多房間聊天

    基于socket.io+express實現(xiàn)多房間聊天

    本文給大家分享的是使用node.js,基于socket.io+express實現(xiàn)多房間聊天的代碼,非常的實用,有需要的小伙伴可以來參考下
    2016-03-03
  • Node.js中的EventEmitter類使用小結(jié)

    Node.js中的EventEmitter類使用小結(jié)

    EventEmitter 是 Node.js 中的一個核心模塊,它提供了一種實現(xiàn)事件驅(qū)動編程的機制,它是一個基于觀察者模式的類,用于在應用程序中處理事件和觸發(fā)事件,這篇文章主要介紹了Node.js中的EventEmitter類介紹,需要的朋友可以參考下
    2023-12-12
  • node.js中的fs.write方法使用說明

    node.js中的fs.write方法使用說明

    這篇文章主要介紹了node.js中的fs.write方法使用說明,本文介紹了fs.write的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js之如何構(gòu)建UDP服務

    Node.js之如何構(gòu)建UDP服務

    這篇文章主要介紹了Node.js之如何構(gòu)建UDP服務問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • nodejs實現(xiàn)的http、https 請求封裝操作示例

    nodejs實現(xiàn)的http、https 請求封裝操作示例

    這篇文章主要介紹了nodejs實現(xiàn)的http、https 請求封裝操作,結(jié)合實例形式分析了node.js針對http、https 請求的封裝與使用相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02

最新評論