教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

使用HTTP模塊構(gòu)建Web服務(wù)器【案例演示】

更新時(shí)間:2021年12月02日10時(shí)39分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

下面通過(guò)一個(gè)案例來(lái)演示Node.js中使用HTTP模塊構(gòu)建Web服務(wù)器的過(guò)程,具體步驟如下:


(1)在Course/code目錄下創(chuàng)建目錄chapter07。

(2)在chapter07目錄下創(chuàng)建文件demo7-1.js,并在該文件下添加如下代碼demo7-1.js:

/**
 * 使用HTTP構(gòu)建Neb服務(wù)器
 */
var http = require('http');
// 1.創(chuàng)建一個(gè)HTTP服務(wù)器
var server = http.createServer();
// 2.監(jiān)聽(tīng) 請(qǐng)求(request)事件
// request就是一個(gè)可讀流,用來(lái)獲取當(dāng)前與服務(wù)器連接的客戶端的一些請(qǐng)求報(bào)文數(shù)據(jù)
// response就是一個(gè)可寫流,用來(lái)給客戶端Socket發(fā)送消息,或者用來(lái)發(fā)送響應(yīng)報(bào)文
server.on('request', function(request, response) {
    // 使用HTTP發(fā)送響應(yīng)數(shù)據(jù)時(shí),HTTP服務(wù)器會(huì)自動(dòng)把數(shù)據(jù)通過(guò)HTTP協(xié)議包裝為一個(gè)
    // 響應(yīng)報(bào)文然后發(fā)送到Socket
    response.write('hello world');
    // 在結(jié)束響應(yīng)之前,可以多次向客戶端發(fā)送數(shù)據(jù)
    response.write('hello itheima');
    // 對(duì)于HTTP請(qǐng)求響應(yīng)模型來(lái)說(shuō),它們的請(qǐng)求和響應(yīng)是一次性的
    // 也就是說(shuō),每一次請(qǐng)求都必須結(jié)束響應(yīng)
    // 標(biāo)識(shí)斷開(kāi)當(dāng)前連接
    response.end();
    // 在一次HITP請(qǐng)求響應(yīng)模型中,當(dāng)結(jié)束了響應(yīng)時(shí),就不能繼續(xù)發(fā)送數(shù)據(jù),以下消息不會(huì)顯示
});
//3.監(jiān)聽(tīng)端口
server.listen(3000, function()(console.log('server is listening at port 3000');
 });

在上述代碼中,第6行使用http.createServer()函數(shù)創(chuàng)建服務(wù)器對(duì)象server。在第10行監(jiān)聽(tīng)server對(duì)象的request事件,request事件回調(diào)函數(shù)的參數(shù)為request和response,在第12行和第14行分別使用response.write()函數(shù)向客戶端發(fā)送數(shù)據(jù),在結(jié)束響應(yīng)之前可以多次發(fā)送。第18行使用response.end()函數(shù)結(jié)束響應(yīng),結(jié)束響應(yīng)后不能再繼續(xù)發(fā)送數(shù)據(jù)。第22~24行監(jiān)聽(tīng)端口3000,由于在本機(jī)測(cè)試,IP地址127.0.0.1。


打開(kāi)終端,執(zhí)行demo7-1.js,執(zhí)行結(jié)果如圖7-10所示。

打開(kāi)Chrome瀏覽器,在地址欄中輸入http://127.0.0.1:3000,按【Enter】鍵,訪問(wèn)結(jié)果如圖7-11所示。

1638340059503_web服務(wù)器.png


在圖7-11中可以看出,兩次調(diào)用response.write(O函數(shù)的結(jié)果全部輸出,使用HTTP構(gòu)建Web服務(wù)器已經(jīng)成功。




猜你喜歡:

Node.js是什么?它有哪些特點(diǎn)和優(yōu)勢(shì)?

Node.JS快速入門:Node.JS下載與安裝教程

深入理解Node.js中的垃圾回收和內(nèi)存泄漏的捕獲

svn是什么?svn服務(wù)器搭建教程

傳智教育HTML+前端開(kāi)發(fā)培訓(xùn)

0 分享到:
和我們?cè)诰€交談!