本文實例講述了node.js使用http模塊創建服務器和客戶端。分享給大家供大家參考,具體如下:
node.js中的 http 模塊提供了創建服務器和客戶端的方法,http 全稱是超文本傳輸協議,基于 tcp 之上,屬于應用層協議。
一、創建http服務器
const http = require('http');//創建一個http服務器let server = http.createServer();//監聽端口server.listen(8888, '0.0.0.0');//設置超時時間server.setTimeout(2 * 60 * 1000);//服務器監聽時觸發server.on('listening', function () { console.log('監聽開始');});//接收到客戶端請求時觸發server.on('request', function (req, res) { //req表示客戶端請求對象,是http.IncomingMessage類的實例,可讀流。 //res表示服務端響應對象,是http.ServerResponse類的實例,可寫流。 //請求方法 console.log(req.method); //請求url console.log(req.url); //請求的頭信息 console.log(req.headers); //請求的http版本 console.log(req.httpVersion); //請求對象的socket對象 console.log(req.socket); res.end('hello');});//連接建立時觸發server.on('connection', function (socket) { console.log('建立連接');});//客戶端向服務器發送CONNECT請求時觸發server.on('connect', function (req, socket, head) { console.log('客戶端connect');});//服務器關閉時觸發,調用 close() 方法。server.on('close', function () { console.log('服務器關閉');});//發生錯誤時觸發server.on('error', function (err) { console.log(err);});//如果連接超過指定時間沒有響應,則觸發。//超時后,不可再復用已建立的連接,需發請求重新建立連接server.on('timeout', function (socket) { console.log('連接已超時');});請求對象 req 里保存了客戶端的詳細信息,包括 url,請求參數等,為了方便的解析這些參數,我們可以使用 url.parse() 方法。
const http = require('http');const url = require('url');//創建一個http服務器let server = http.createServer();//監聽端口server.listen(8888, '0.0.0.0');//接收到客戶端請求時觸發server.on('request', function (req, res) { //解析url返回一個url對象 //如果參數二設為true,則url對象中的query屬性將通過querystring.parse()生成一個對象 let params = url.parse(req.url, true); //完整url地址 console.log('href', params.href); //主機名,包含端口 console.log('host', params.host); //主機名,不包含端口 console.log('hostname', params.hostname); //端口 console.log('port', params.port); //協議 console.log('protocol', params.protocol); //路徑,包含查詢字符串 console.log('path', params.path); //路徑,不包含查詢字符串 console.log('pathname', params.pathname); //查詢字符串,不包含 ? console.log('query', params.query); //查詢字符串,包含 ? console.log('search', params.search); //散列字符串,包含 # console.log('hash', params.hash); res.end('end');});
新聞熱點
疑難解答
圖片精選