標籤:message head creates 觸發事件 參數 end tp伺服器 ejs 寫法
http模組主要用到四個方法:
1.Server類
const http = require(‘http‘);
let server = new Server();
server.on(‘request‘,function(req,res){
res.writeHead(200,{content-type:‘text/plain‘});
} );
server.listen(3000,function(){});
http.Server 主要的事件有:
~ request,當用戶端發送請求時觸發,回呼函數會有req和res參數。
~ connection,當TCP連結建立時事件觸發,提供一個socket參數,是net.socket的執行個體。這裡不作說明。
~ close,當伺服器關閉時觸發事件。
2.createServer( function(req,res){} );
此方法相當於Server添加了一個request事件。
以上1、2的req是http.IncomingMessage的執行個體,其提供了三個事件:
~ data:當請求體資料到來時該事件被觸發。該事件提供一個chunk作為參數,代表接受到的資料。
~ end:當請求體資料轉送完畢時該事件被觸發。
~close:使用者當前請求結束時觸發。
同時,http.IncomingMessage提供的主要屬性有:
~ method:http請求的方法。
~ headers:http要求標頭。
~ url:請求路徑。
~ httpVersion:http協議版本。
res是http.ServerResponse的執行個體,常用方法:
~ res.writeHead(statusCode,[headers])。
~ res.write(data[,encoding]);向請求發送內容。
~ res.end([data]);結束請求。
Server()和createServer()返回的是一個基於事件的http伺服器。
3.request()
request()必須end()。
const http = require(‘http‘);
http.request(option[,function(res){}]).end();
~ option 為JSON對象,主要有host、port(預設80)、method(預設get)、path(請求的相對路徑、預設‘/‘)、headers等。
4.get()
http.get()方法是http.request()的get方法寫法,同樣需要end();
request()和get()返回的是一個http.ClientRequest類執行個體。其主要的事件和方法有:
~ response,該事件當收到響應時觸發。
~ request.write(chunk[,encoding,callback]),發送請求資料。
~ end(),請求完畢,應該始終指定該方法。
nodejs--http