成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用 Nodejs 實現 Http 服務版本的 Hello world

開發 前端
Nodejs 提供了 Http 模塊,可以讓我們比較便捷地創建 Http 服務,但因為涉及到的類和 API 也比較多,所以實際上更多會使用封裝后的Web 框架,比如 Express、Nestjs。

大家好,我是前端西瓜哥,今天我們來學習 nodejs,用 nodejs 寫一個簡單 http 服務版本的 "hello world"。

http.createServer

我們需要用到 nodejs 的 http 模塊。

http 模塊包含了和 http 相關的一些方法,我們需要用到 http.createServer 方法,它用于創建一個 http 服務,并返回 http.Server 實例對象。

http.createServer 方法接受兩個參數:

  1. 配置對象 options,可選。比如可以配置請求超時時間 requestTimeout。
  2. 監聽請求函數,可選。當接收到請求時,我們可以通過該函數拿到請求對象 req 和響應對象 res。req 是http.IncomingMessage 實例對象,res 則是 http.ServerResponse 實例對象, http.ServerResponse  繼承自 http.OutgoingMessage 類。

然后返回一個 http.Server 實例對象,http.Server 繼承自 net.Server。

http 模塊涉及相當多的類,需要注意區分。

const http = require('http');

const server = http.createServer((req, res) => {
// ...
})

對于 req 請求對象,我們可以拿到請求內容,比如:

  • req.headers :對象形式的請求頭字段(key 會轉換為小寫)。
  • req.method:請求方法,如 "Get"。

對于 res 響應對象,我們可以通過它來設置響應信息,比如:

  • res.writeHead:writeHead 方法用于設置狀態碼(如 200)、狀態消息(如 "OK")以及響應頭字段。主要注意的是,有些頭字段是 nodejs 自己加的,比如 date。
  • res.setHeader:設置單個響應頭字段,但必須在 res.writeHead 前執行。
  • res.getHeaders:返回最終設置出來的響應頭對象,可用于調試。
  • res.write:設置響應體內容、編碼類型,可以多次調用,新內容會接到末尾。
  • res.end:該方法表示響應頭和請求體已經設置完成,響應就會發出去,這個方法是必須要調用的。可以傳入內容參數設置響應體,相當于順手再做了一下 res.write 的工作。

然后是 http.createServer 返回的  http.Server 實例對象。它用于控制了這個特定 http 服務,比如:

  • server.close :該方法可以關閉當前 http 服務。具體是先不再接受新的請求,然后正在處理的請求都處理完后,才真正關閉,并觸發  close 事件。
  • server.listen:監聽請求連接,常見的用法是指定一個端口號。

Hello World!

現在我們來實現一個會返回 Hello World! 的 http 服務。

const http = require('http');

http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World!\n');
}).listen(3200);

很簡單。我們先用 http.createServer 創建一個 http 服務。

傳入一個請求函數,這個函數會在發生請求時拿到 res 響應對象,然后使用 res.writeHead 設置狀態碼 200,以及必要的頭字段。

我們返回的數據是純文本類型,所以設置 Content-Type 為 'text/plain'。這個需要根據你自己的需求選擇 MIME,比如 HTML 用 text/html。

然后用 res.end 表示設置完成,并帶上 'Hello World!\n' 作為請求體。

最后我們給 http.createServer 方法返回的對象執行 listen 方法,監聽 3200 端口。

然后我們訪問 http://localhost:3200/,就能看到 Hello World! 了。

結尾

Nodejs 提供了 http 模塊,可以讓我們比較便捷地創建 http 服務,但因為涉及到的類和 API 也比較多,所以實際上更多會使用封裝后的Web 框架,比如 Express、Nestjs。

責任編輯:姜華 來源: 前端西瓜哥
相關推薦

2014-12-19 10:07:10

C

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2020-03-25 14:40:45

語言編程語言Hello

2009-09-28 14:49:08

Spring DMOSGi服務

2009-07-30 13:21:17

Scala入門Hello World

2009-08-11 10:32:23

什么是Groovy

2023-01-06 08:18:44

2009-09-16 17:15:19

OSGi Bundle

2023-09-04 07:30:03

Wasm匯編語言

2011-06-08 14:39:06

Qt 教程

2012-02-20 14:26:48

JavaPlay Framew

2017-06-26 08:55:52

2015-10-27 09:47:11

2023-05-23 08:01:10

Netty網絡通信

2009-08-14 16:54:19

C# Hello Wo

2021-11-26 08:22:01

Java動態開發

2011-08-05 09:48:46

iPhone Interface

2024-04-11 13:13:27

2014-04-11 11:36:42

NDKAndroid開發終端

2017-01-09 16:40:07

React NatiAndroid 開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.久久久久久久久 | 中文字幕高清在线 | 在线观看中文字幕一区二区 | 久日精品 | 欧美成人精品一区二区三区 | 青青久久 | 欧美一区二区三区在线看 | 亚洲精品久久久一区二区三区 | h视频在线免费观看 | 亚洲欧美视频一区 | 一级一级毛片免费看 | 尤物在线精品视频 | 懂色中文一区二区三区在线视频 | 日韩视频成人 | 精品国产欧美一区二区三区成人 | 国产精品一区二区不卡 | 国产精品久久久久久一区二区三区 | 日韩欧美中文字幕在线观看 | 最近中文字幕在线视频1 | 91网站在线看| 中文在线一区二区 | 每日更新av | 伊人网站 | 在线观看h视频 | 国产一区二区精品在线 | 日韩三级 | 欧美性受 | 伊人免费在线观看 | 欧美一级黄带 | 一区二区三区av | 极品销魂美女一区二区 | 午夜视频网站 | 欧美日产国产成人免费图片 | 久久国产精品亚洲 | 欧美天堂 | 国产精品久久久久久久久久 | 91在线看视频| 亚洲成人av在线播放 | 亚洲欧洲色视频 | 中文字幕亚洲一区 | 亚洲高清免费 |