Object 內建對象

物件HttpServer

HttpServer 是內建物件之一,它是用來建立HTTP 伺服器的物件。一個HttpServer 物件包含兩個必傳的參數:連接埠和事件處理介面物件。在事件處理介面物件中,具體的實作方式可以是簡單的回呼函數,也可以使用複雜的路由、鍊式處理數組等方式

http伺服器對像是將TcpServerHttpHandler組合封裝的對象,方便快速建置伺服器,邏輯相當於:

1 2 3
var svr = new net.TcpServer(addr, port, new http.Handler(function(req) { ... }));

下面是一個最簡單的HttpServer 的應用範例,它只是對所有請求,回傳字串hello world。

1 2 3 4 5
const http = require('http'); var svr = new http.Server(8080, (req) => { req.response.write('hello, world'); }); svr.start();

從程式碼中可以看到,首先,我們導入了內建的http模組。然後我們建立了一個新的HttpServer 對象,並且傳入了兩個必要參數:一個是連接埠號,另一個是特定的事件處理介面對象。在這個例子中,我們使用了一個簡單的回呼函數作為事件處理接口,用來回應來自HTTP 請求的資料。其中req.response.write('hello, world')用於將我們的字串hello world 回應到客戶端。

在完成了HttpServer 物件的建立之後,使用svr.start()來啟動伺服器,這樣我們就能透過這個伺服器接收來自Internet 的HTTP 請求了。

繼承關係

建構函數

HttpServer

HttpServer 建構函數,在所有本機位址偵聽

1 2
new HttpServer(Integer port, Handler hdlr);

呼叫參數:

  • port: Integer, 指定http伺服器偵聽連接埠
  • hdlr:Handler,http內建訊息處理器,處理函數,鍊式處理數組,路由對象,詳見mq.Handler

HttpServer 建構函數

1 2 3
new HttpServer(String addr, Integer port, Handler hdlr);

呼叫參數:

  • addr: String, 指定http伺服器偵聽位址,為"" 則在本機所有位址偵聽
  • port: Integer, 指定http伺服器偵聽連接埠
  • hdlr:Handler,http內建訊息處理器,處理函數,鍊式處理數組,路由對象,詳見mq.Handler

HttpServer 建構函數

1 2
new HttpServer(String addr, Handler hdlr);

呼叫參數:

  • addr: String, 指定http伺服器偵聽位址,為"" 則在本機所有位址偵聽
  • hdlr:Handler,http內建訊息處理器,處理函數,鍊式處理數組,路由對象,詳見mq.Handler

成員屬性

maxHeadersCount

Integer, 查詢並設定最大請求頭個數,缺省為128

1
Integer HttpServer.maxHeadersCount;

maxHeaderSize

Integer, 查詢並設定最大請求頭長度,預設為8192

1
Integer HttpServer.maxHeaderSize;

maxBodySize

Integer, 查詢並設定body 最大尺寸,以MB 為單位,預設為64

1
Integer HttpServer.maxBodySize;

enableEncoding

Boolean, 自動解壓縮功能開關,預設為關閉

1
Boolean HttpServer.enableEncoding;

serverName

String, 查詢設定伺服器名稱,預設為:fibjs/0.x.0

1
String HttpServer.serverName;

socket

Socket, 伺服器目前偵聽的Socket物件

1
readonly Socket HttpServer.socket;

handler

Handler, 伺服器目前事件處理介面對象

1
Handler HttpServer.handler;

成員函數

enableCrossOrigin

允許跨域請求

1
HttpServer.enableCrossOrigin(String allowHeaders = "Content-Type");

呼叫參數:

  • allowHeaders: String, 指定接受的http頭字段

start

啟動目前伺服器

1
HttpServer.start();

stop

關閉socket中止正在運作的伺服器

1
HttpServer.stop() async;

toString

傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現

1
String HttpServer.toString();

回傳結果:

  • String, 傳回物件的字串表示

toJSON

傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合

1
Value HttpServer.toJSON(String key = "");

呼叫參數:

  • key: String, 未使用

回傳結果:

  • Value, 傳回包含可JSON 序列化的值