91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node http模塊基本使用方法是什么

發布時間:2023-02-06 09:32:00 來源:億速云 閱讀:166 作者:iii 欄目:web開發

這篇文章主要介紹了Node http模塊基本使用方法是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Node http模塊基本使用方法是什么文章都會有所收獲,下面我們一起來看看吧。

http 模塊

使用 Node.js 中創建 Web 服務,主要依賴內置的 http 模塊。經典的 express.js、koa.js 框架都是以 http 模塊為核心,進行的不同程度的封裝。

創建一個最簡單的 Web 服務只需要幾行代碼。新建一個 index.js 文件,輸入以下內容:

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

// 2. 調用 createServer 方法創建服務
const server = http.createServer((request, response) => {
    // 3.響應給瀏覽器的內容
	response.end('Hello, World'); 
});

// 4.執行 listen 方法,啟動服務
server.listen(3000, () => {
    console.log('服務器啟動成功:http://localhost:3000')
})

然后打開命令行工具,使用 node 命令執行該文件:

node index.js

命令行工具中會打印:

服務器啟動成功:http://localhost:3000

之后打開瀏覽器,訪問 http://localhost:3000,就能看到以下內容:

Node http模塊基本使用方法是什么

到這里,只需件簡簡單單的 6 行代碼,就創建了一個 web 服務。

createServer 方法

可以看到,創建 Web 服務的核心方法就是 createServer 方法。

它接收一個回調函數,回調參數接收兩個參數,分別是 :

  • request 對象:表示 HTTP 請求對象,里面包含了客戶端本次請求攜帶的信息

  • response 對象:表示 HTTP 響應對象,用于向客戶端設置響應的信息

這個回調函數,就是處理 http 請求,設置 http 響應的主要場所。所以,編寫 web 服務,其實就是在不停的在這個函數中處理請求和響應內容。這也是基于 HTTP 協議本身的請求-響應模型所決定的。當然,實際開發中肯定不能這么雜糅的寫,都是使用框架,那會有很合理的中間件機制和分層。

listen 方法

我們都知道,TCP 協議是 HTTP 協議的底層協議,所有 HTTP 請求的數據都是利用 TCP 傳輸的。要發送 HTTP 請求,必須先建立 TCP 連接

Node 中要創建 HTTP 服務也是如此。createServer 方法執行后會創建一個 Server 類的實例,該 Server 類又繼承自另一個內置模塊 net 中的 Server 類,它身上有一個 listen 方法。下面是相關的類型聲明,可以理解這其中的關系。

// net 模塊

class Server extends EventEmitter {
 
        /**
         * 啟動服務器監聽連接。此 Server 可以是 TCP 或 IPC 服務器,具體取決于它所監聽的內容。
         */
        // 有若干重載,這是最常使用的一種方法
        listen(port?: number, hostname?: string, listeningListener?: () => void): this;
        listen(port?: number, listeningListener?: () => void): this;
}


// http 模塊
import { Server as NetServer } from 'node:net';

function createServer<
        Request extends typeof IncomingMessage = typeof IncomingMessage,
        Response extends typeof ServerResponse = typeof ServerResponse,
    >(requestListener?: RequestListener<Request, Response>): Server<Request, Response>;
      
class Server<
        Request extends typeof IncomingMessage = typeof IncomingMessage,
        Response extends typeof ServerResponse = typeof ServerResponse,
    > extends NetServer {}

所以通過 createServer 方法創建了服務之后,還用再調用 listen 方法,用于啟動該服務,監聽連接

它有多種重載,最常用的一種就是監聽一個端口,在啟動成功后,執行回調函數:

server.listen(3000, () => {
    console.log('服務器啟動成功:http://localhost:3000')
})

如果服務啟動失敗,比如出現端口占用時,控制臺中會直接報錯,就不再執行后面的回調函數了。

再介紹兩種其他的重載,使用的并不多。

一種是不指定端口號,此時操作系統會隨機分配一個可用的端口號。在服務啟動成功后,可以通過 server.address().port 屬性來獲得分配的端口號:

server.listen(() => {
    const port = server.address().port
    console.log(port)
    console.log('服務器啟動成功:http://localhost:', port)
})

試一下:

Node http模塊基本使用方法是什么

一種是指定要監聽的主機名

當不指定 host 時,默認為 0.0.0.0(IPv4)或者 ::(IPv6),支持網絡中所有的主機進行訪問

如果設置為 locolhost 或者 127.0.0.1,則只能自己的主機訪問。

server.listen(3000, 'localhost', () => {
    console.log('服務器啟動成功:http://localhost:', port)
})

關于“Node http模塊基本使用方法是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Node http模塊基本使用方法是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武鸣县| 永春县| 宣威市| 西吉县| 蕉岭县| 海盐县| 抚顺市| 马公市| 新安县| 建阳市| 清原| 江津市| 穆棱市| 庆城县| 卢氏县| 禄劝| 平度市| 青海省| 朝阳市| 天门市| 格尔木市| 四会市| 宝鸡市| 泊头市| 深圳市| 横山县| 府谷县| 弥渡县| 垫江县| 铜梁县| 汨罗市| 宝清县| 中牟县| 三河市| 镇沅| 湄潭县| 东莞市| 阳新县| 黎川县| 唐海县| 红河县|