亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

node.js中http模塊和url模塊的簡(jiǎn)單介紹

 更新時(shí)間:2017年10月06日 10:03:28   作者:倩兒愛(ài)甜食  
這篇文章主要給大家簡(jiǎn)單介紹了關(guān)于node.js中的http模塊和url模塊,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

前言

本文主要給大家介紹了關(guān)于node.js中http模塊與url模塊的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

一、http模塊的簡(jiǎn)單介紹

node.js當(dāng)中的http內(nèi)置模塊可以用于創(chuàng)建http服務(wù)器與http客戶端。

1、引包

const http = require('http');

2、創(chuàng)建http服務(wù)器

var server = http.createServer((req,res)=>{

});

使用http的.createServer()方法可以用于返回一個(gè)http服務(wù)器實(shí)例,用自定義的server變量來(lái)接收。當(dāng)該服務(wù)器每次接收到客戶端的請(qǐng)求時(shí)觸發(fā)調(diào)用其內(nèi)部的回調(diào)函數(shù),客戶端每訪問(wèn)一次,都會(huì)觸發(fā)調(diào)用一次。該回調(diào)函數(shù)有兩個(gè)參數(shù),req和res,順序不可顛倒,req表示請(qǐng)求request,res表示響應(yīng)response。

該回調(diào)函數(shù)內(nèi)部語(yǔ)句的一定要有res.end(); ,因?yàn)槿绻麤](méi)有,瀏覽器會(huì)認(rèn)為一直沒(méi)有得到服務(wù)器的響應(yīng),則瀏覽器一直會(huì)處于被掛起的狀態(tài),此時(shí)瀏覽器內(nèi)部有一個(gè)超時(shí)機(jī)制,一旦超時(shí),則會(huì)報(bào)告錯(cuò)誤。
該回調(diào)函數(shù)當(dāng)中的常用代碼語(yǔ)句有:

設(shè)置響應(yīng)頭,res.writeHead(狀態(tài)碼,{});其中HTTP狀態(tài)碼常用的有200(成功返回)、404(找不到該頁(yè)面,返回錯(cuò)誤)等。第二個(gè)參數(shù)傳入一個(gè)對(duì)象,用于設(shè)置響應(yīng)文本的渲染解析類(lèi)型。如常用的有對(duì)于html代碼設(shè)置為,res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"}); 。對(duì)于css文件的設(shè)置為res.writeHead(200,{"Content-Type":"text/css"}); 。對(duì)于圖片的設(shè)置為res.writeHead(200,{"Content-Type":"image/jpg"}); 。對(duì)于純文本的設(shè)置為res.writeHead(200,{"Content-Type":"text/plain"});設(shè)置返回的內(nèi)容,res.write('');

3、讓該服務(wù)器監(jiān)聽(tīng)特定的端口號(hào)

用server這個(gè)自定義的變量來(lái)表示創(chuàng)建的服務(wù)器來(lái)監(jiān)聽(tīng)某個(gè)指定的端口號(hào)。server.listen(3000,'192.168.155.1');外界客戶端可以通過(guò)這個(gè)ip地址和端口號(hào)來(lái)訪問(wèn)這個(gè)服務(wù)器。

此時(shí)表示該服務(wù)器處于掛起的狀態(tài),此時(shí)在瀏覽器當(dāng)中輸入對(duì)應(yīng)的ip地址與端口號(hào)即可得到服務(wù)端響應(yīng)的內(nèi)容。

二、url模塊的簡(jiǎn)單介紹

const http = require('http');
var server = http.createServer((req,res)=>{
 console.log(req.url);
 res.end();
});
server.listen(3000,'192.168.155.1');

使用node命令開(kāi)啟這個(gè)服務(wù)器時(shí),可以在控制臺(tái)實(shí)時(shí)打印出訪問(wèn)的客戶端的url地址信息。

由于在通過(guò)chrome瀏覽器的方式在進(jìn)行訪問(wèn)時(shí),每次訪問(wèn)都會(huì)默認(rèn)附帶一次/favicon.ico的請(qǐng)求,在解析客戶端真正在瀏覽器的訪問(wèn)地址時(shí),可以做如下處理:

const http = require('http');
var server = http.createServer((req,res)=>{
 if(req.url == '/favicon.ico'){
  return;
 };
 console.log(req.url);
 res.end();
});
server.listen(3000,'192.168.155.1');


如上圖所示,我們通過(guò)req.url可以得到用戶完整的請(qǐng)求地址,我們可以利用內(nèi)置的url模塊對(duì)用戶的請(qǐng)求地址進(jìn)行解析。

1、引包

const url = require('url');

2、常用的是url.parse(req.url)

該方法常用的是把一個(gè)完整的url地址分解為一個(gè)對(duì)象。

const http = require('http');
const url = require('url');
var server = http.createServer((req,res)=>{
 if(req.url == '/favicon.ico'){
  return;
 };
 console.log(url.parse(req.url));
 res.end();
});
server.listen(3000,'192.168.155.1');


其中最常用的是url.parse(req.url).pathname得到一個(gè)文件路徑的字符串,以/開(kāi)頭,并且不包括查詢部分的內(nèi)容。使用url.parse(req.url).query可以得到一個(gè)查詢部分的字符串。其中url.parse()方法的第二個(gè)參數(shù)是true,可以將所有的查詢變?yōu)閷?duì)象形式。

 console.log(url.parse(req.url,true).query);


通過(guò)這種方式可以快速得到客戶端通過(guò)GET方式向服務(wù)器提交的數(shù)據(jù)。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 從零學(xué)習(xí)node.js之express入門(mén)(六)

    從零學(xué)習(xí)node.js之express入門(mén)(六)

    相信大家都知道Express是一個(gè)簡(jiǎn)潔而靈活的 node.js Web應(yīng)用框架, 提供了一系列強(qiáng)大特性幫助你創(chuàng)建各種 Web 應(yīng)用,和豐富的 HTTP 工具。下面這篇文章主要介紹了node.js中express的入門(mén)知識(shí),需要的朋友可以參考下。
    2017-02-02
  • Node.js異步I/O學(xué)習(xí)筆記

    Node.js異步I/O學(xué)習(xí)筆記

    這篇文章主要介紹了Node.js異步I/O學(xué)習(xí)筆記,本文詳細(xì)講解了異步I/O的基本概念、Node的異步I/O、非I/O的異步API、事件驅(qū)動(dòng)與高性能服務(wù)器等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • 詳解puppeteer使用代理

    詳解puppeteer使用代理

    這篇文章主要介紹了詳解puppeteer使用代理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • node.js中的http.get方法使用說(shuō)明

    node.js中的http.get方法使用說(shuō)明

    這篇文章主要介紹了node.js中的http.get方法使用說(shuō)明,本文介紹了http.get的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 實(shí)例詳解Node.js 函數(shù)

    實(shí)例詳解Node.js 函數(shù)

    這篇文章主要介紹了Node.js 函數(shù) ,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • nvm、nrm、npm 安裝和使用詳解(小結(jié))

    nvm、nrm、npm 安裝和使用詳解(小結(jié))

    這篇文章主要介紹了nvm、nrm、npm 安裝和使用詳解(小結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Mongoose實(shí)現(xiàn)虛擬字段查詢的方法詳解

    Mongoose實(shí)現(xiàn)虛擬字段查詢的方法詳解

    這篇文章主要給大家介紹了關(guān)于Mongoose實(shí)現(xiàn)虛擬字段查詢的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • Node.js文本文件BOM頭的去除方法

    Node.js文本文件BOM頭的去除方法

    這篇文章主要給大家介紹了關(guān)于Node.js文本文件BOM頭的去除方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 淺談node.js中async異步編程

    淺談node.js中async異步編程

    本文嘗試結(jié)合Marc Fasel的指導(dǎo)思想和筆者的實(shí)踐經(jīng)驗(yàn)來(lái)介紹一些NodeJS的異步編程風(fēng)格,希望對(duì)NodeJS的初學(xué)者有所啟發(fā)。
    2015-10-10
  • Nodejs學(xué)習(xí)筆記之測(cè)試驅(qū)動(dòng)

    Nodejs學(xué)習(xí)筆記之測(cè)試驅(qū)動(dòng)

    本文是本系列文章的第二篇,主要是測(cè)試針對(duì)于web后端的驅(qū)動(dòng),在開(kāi)發(fā)過(guò)程中,在開(kāi)發(fā)完成一段代碼后如果負(fù)責(zé)任而不是說(shuō)完全把問(wèn)題交給測(cè)試人員去發(fā)現(xiàn)的話,這個(gè)時(shí)候通常都會(huì)去做一些手動(dòng)的測(cè)試。
    2015-04-04

最新評(píng)論