本篇內(nèi)容介紹了“Node.js中的http模塊怎么使用”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)是一家專業(yè)提供郯城企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、做網(wǎng)站、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為郯城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。
在百度百科的解釋:
超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)是一個簡單的請求-響應(yīng)協(xié)議,它通常運(yùn)行在TCP之上。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣的響應(yīng)。請求和響應(yīng)消息的頭以ASCII形式給出;而 [9] 消息內(nèi)容則具有一個類似MIME的格式。這個簡單模型是早期Web成功的有功之臣,因為它使開發(fā)和部署非常地直截了當(dāng)。
如果學(xué)過JavaSE基礎(chǔ)的,應(yīng)該對網(wǎng)絡(luò)編程很熟悉
當(dāng)然沒學(xué)過也沒事,且聽良心作者我為您娓娓道來:
1.1、網(wǎng)絡(luò)通信協(xié)議
在2022年的今天,計算機(jī)網(wǎng)絡(luò)已經(jīng)成為了人們?nèi)粘I畹谋匦杵?,無論是郵件、與朋友聊天的即時通訊、短視頻娛樂·······可以說,我們通過計算機(jī)網(wǎng)絡(luò)可以使得多臺計算機(jī)實現(xiàn)連接。
計算機(jī)網(wǎng)絡(luò)通過傳輸介質(zhì)、通訊設(shè)施、和網(wǎng)絡(luò)通信協(xié)議,把在一個網(wǎng)絡(luò)下的多個計算機(jī)設(shè)備連接起來,實現(xiàn)了資源共享和數(shù)據(jù)傳輸。
但是在同一個網(wǎng)絡(luò)的計算機(jī)進(jìn)行連接和通訊的時候,必要遵守一定的規(guī)則,在計算機(jī)網(wǎng)絡(luò)中,這些連接和通信的規(guī)則叫做網(wǎng)絡(luò)通信協(xié)議:
我們這里講到的http協(xié)議就是基于 tcp實現(xiàn)的。常見的http應(yīng)用場景就是 你在瀏覽器輸入一串地址,然后返回過來一個網(wǎng)頁。
1.2、IP地址和端口號
要想使得網(wǎng)絡(luò)中的計算機(jī)能夠進(jìn)行通信,還必須為每臺計算機(jī)指定一個標(biāo)識號,通過這個標(biāo)識號來指定接收數(shù)據(jù)的計算機(jī) 或者 指定發(fā)送數(shù)據(jù)的計算機(jī)。
查看自己的電腦在局域網(wǎng)的ip地址在windows電腦中按WIN+R鍵盤 輸入cmd快速進(jìn)入控制臺
ipconfig
通過IP地址可以連接到指定的計算機(jī),但如果想訪問目標(biāo)計算機(jī)中你的某個應(yīng)用程序,還需要指定端口號。
例如MySQL的3306、TomCat的8080
Node.js 提供了 http 模塊,http 模塊主要用于搭建 HTTP 服務(wù)端和客戶端,使用 HTTP 服務(wù)器或客戶端功能必須調(diào)用 http 模塊。
2.1、厚積(細(xì)講,詳細(xì)介紹用到的對象方法,整個http服務(wù)搭建流程)
流程簡介:
先用createServer()方法 注冊server對象,
然后用這個server對象 去調(diào)用on()方法監(jiān)聽處理事件,
調(diào)用listen()方法去綁定端口號
開始淺嘗:
任何網(wǎng)絡(luò)服務(wù)應(yīng)用程序總是要先創(chuàng)建一個服務(wù)對象。在nodeJS中我們可以使用createServer方法來實現(xiàn),
// 首先導(dǎo)入http模塊 const http = require('http'); // 創(chuàng)建http服務(wù)對象 const server = http.createServer();
由 createServer 構(gòu)造函數(shù)返回的 Server對象是一個事件發(fā)射器,在這里用創(chuàng)建好的的server對象 利用他自帶的on()方法對它進(jìn)行事件監(jiān)聽處理。這樣,每當(dāng)有http請求發(fā)送過來,我們就可以進(jìn)行處理了。
// 首先導(dǎo)入http模塊 const http = require('http'); // 創(chuàng)建http服務(wù)對象 const server = http.createServer(); // 綁定事件監(jiān)聽 server.on('request', (request, response) => { // 永遠(yuǎn)相信美好的事情即將發(fā)生! });
我們前面介紹過(IP地址+端口),其中IP地址在我們計算機(jī)聯(lián)網(wǎng)的時候,路由器就會自動DHCP分配給我們,但要想訪問計算機(jī)上指定的程序還必須有端口號。
為了訪問計算機(jī)上的指定程序,我們還要用到listen()方法。你只需要用server.listen()把端口號作為參數(shù)傳入 listen 方法中,作為監(jiān)聽端口即可。
// 首先導(dǎo)入http模塊 const http = require('http'); // 創(chuàng)建http服務(wù)對象 const server = http.createServer(); // 綁定事件監(jiān)聽 server.on('request', (req, res) => { // 此函數(shù)內(nèi)容只是小小調(diào)用一下res參數(shù)讓程序更加易懂的跑起來 // 編寫響應(yīng)頭(不寫瀏覽器不識別) res.writeHead(200,{'Content-Type':'text/html;charset=UTF8'}); // 發(fā)送響應(yīng)數(shù)據(jù) res.end("<h2>歡迎使用node.js搭建服務(wù)</h2>"); }); // 綁定端口號 server.listen(8888); // 控制臺打印地址,方便快速調(diào)試 console.log('您的http服務(wù)啟動在 http://127.0.0.1:8888/');
代碼運(yùn)行演示:
上述代碼演示十分細(xì)節(jié),但是實際開發(fā)起來,不建議這樣一步步寫,過于繁瑣了
接下來跟著作者,讓我們繼續(xù)優(yōu)化一下代碼,讓代碼更加牛逼且簡潔
2.2、薄發(fā)(極簡才是王道,優(yōu)雅!太優(yōu)雅了!??!)
一步一步注冊對象,調(diào)各種方法的流程太過繁瑣,這里我們用小而美的做法,一步踏天,實現(xiàn)一個http接口:
const http = require('http'); const server = http.createServer(function(req,res){ // 永遠(yuǎn)相信美好的事情即將發(fā)生 }).listen(8080);
每當(dāng)有 HTTP 請求到達(dá)服務(wù)器時,createServer 中傳入的函數(shù)就被自動執(zhí)行。所以這個函數(shù)也被稱為是請求處理函數(shù)。我們可以直接在里面?zhèn)魅胧录O(jiān)聽的回調(diào)函數(shù),然后后面點(diǎn)上listen()方法,直接綁定端口號。
但是這樣還不夠好,是的,還可以更好,把上面回調(diào)函數(shù)用箭頭函數(shù)修飾一下,更加美觀。
const http = require('http'); const server = http.createServer((req,res) => { // 永遠(yuǎn)相信美好的事情即將發(fā)生 }).listen(8080);
直接一個createServer()解決一切:
var http = require('http') // 創(chuàng)建服務(wù)器 http.createServer( (req, res) =>{ // 永遠(yuǎn)相信美好的事情即將發(fā)送 }).listen(8888);
看到這里,恭喜你已經(jīng)入門了nodeJS的http模塊 此時此刻的你 已經(jīng)掌握了如下技能
實例化一個 HTTP 服務(wù),綁定一個處理請求的函數(shù),并對某個特定端口進(jìn)行監(jiān)聽。
請繼續(xù)關(guān)注作者,接下來 我們將學(xué)習(xí)
request 中獲取請求頭,訪問路徑,方法以及消息體。
response 象發(fā)送響應(yīng)頭,HTTP 狀態(tài)碼以及消息體。
server.on()的相關(guān)參數(shù) 進(jìn)行錯誤、超時、連接·····等等情況的處理
“Node.js中的http模塊怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
新聞名稱:Node.js中的http模塊怎么使用
分享路徑:http://www.rwnh.cn/article44/gposhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、靜態(tài)網(wǎng)站、搜索引擎優(yōu)化、品牌網(wǎng)站制作、域名注冊、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)