最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js學(xué)習(xí)之地址解析模塊URL的使用詳解

 更新時(shí)間:2017年09月28日 11:37:01   作者:NextStand  
url模塊是nodejs里面的一個(gè)簡(jiǎn)單的模塊,下面這篇文章主要給大家介紹了關(guān)于Node.js學(xué)習(xí)之地址解析模塊URL使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。

前言

本文主要給大家介紹了關(guān)于Node.js地址解析模塊URL使用的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話(huà)不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

url結(jié)構(gòu)化/模塊化/路徑解析

  • 結(jié)構(gòu)化:url.parse(urlString[, parseQueryString[, slashesDenoteHost]])
  • 模塊化:url.format(urlObject)
  • 路徑解析:url.resolve(from, to)

一個(gè)URL字符串是一個(gè)結(jié)構(gòu)化的字符串包含多個(gè)有意義的組件。在解析時(shí),返回一個(gè)URL對(duì)象包含每一個(gè)組件的屬性。

官方手冊(cè)上面的一張圖是這樣子的:

這張圖解釋了一個(gè)url結(jié)構(gòu)化成哪些部分,哪些部分又包含哪些部分

protocol: 請(qǐng)求協(xié)議

host: URL主機(jī)名已全部轉(zhuǎn)換成小寫(xiě), 包括端口信息

auth:URL中身份驗(yàn)證信息部分

hostname:主機(jī)的主機(jī)名部分, 已轉(zhuǎn)換成小寫(xiě)

port: 主機(jī)的端口號(hào)部分

pathname: URL的路徑部分,位于主機(jī)名之后請(qǐng)求查詢(xún)之前

search: URL 的“查詢(xún)字符串”部分,包括開(kāi)頭的問(wèn)號(hào)。

path: pathname 和 search 連在一起。

query: 查詢(xún)字符串中的參數(shù)部分(問(wèn)號(hào)后面部分字符串),或者使用 querystring.parse() 解析后返回的對(duì)象。

  hash: URL 的 “#” 后面部分(包括 # 符號(hào))

url結(jié)構(gòu)化

將一個(gè)url地址結(jié)構(gòu)化成為擁有上圖屬性的url對(duì)象。url.parse第二個(gè)和第三個(gè)參數(shù)默認(rèn)為false。

  • 第二個(gè)參數(shù)決定query屬性值是字符串還是對(duì)象
  • 第三個(gè)參數(shù)如果為true,//后的第一個(gè)令牌文字字符串和下一個(gè)/之間的文字字符串將被解釋為主機(jī)

例子如下

const url = require("url");
var urlstr = "http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC";
var urlobj = url.parse(urlstr); 
console.log(urlobj);
/*
Url {
 protocol: 'http:',
 slashes: true,
 auth: null,
 host: 'localhost:8888',
 port: '8888',
 hostname: 'localhost',
 hash: null,
 search: '?name=bigbear&memo=helloworld&memo=helloC',
 query: 'name=bigbear&memo=helloworld&memo=helloC',
 pathname: '/bb',
 path: '/bb?name=bigbear&memo=helloworld&memo=helloC',
 href: 'http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC' }
*/

第二個(gè)參數(shù)為true時(shí)

query: { name: ‘bigbear', memo: [ ‘helloworld', ‘helloC' ] },

例子如下:

const url = require("url");
var urlstr = "http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC";
console.log(
 url.parse(urlstr, true)
)
/*
Url {
 protocol: 'http:',
 slashes: true,
 auth: null,
 host: 'localhost:8888',
 port: '8888',
 hostname: 'localhost',
 hash: null,
 search: '?name=bigbear&memo=helloworld&memo=helloC',
 query: { name: 'bigbear', memo: [ 'helloworld', 'helloC' ] },
 pathname: '/bb',
 path: '/bb?name=bigbear&memo=helloworld&memo=helloC',
 href: 'http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC' }
*/

第三個(gè)參數(shù)對(duì)比

例子如下:

const url = require("url");
var urlstr = "http://foo/bar ";
console.log(
 url.parse(urlstr, true,true)
)
/*
 輸出:Url {
 protocol: null,
 slashes: true,
 auth: null,
 host: 'foo',
 port: null,
 hostname: 'foo',
 hash: null,
 search: '',
 query: {},
 pathname: '/bar',
 path: '/bar',
 href: '//foo/bar' }
*/


const url = require("url");
var urlstr = "http://foo/bar ";
console.log(
 url.parse(urlstr)
)
/*
輸出:
Url {
 protocol: null,
 slashes: null,
 auth: null,
 host: null,
 port: null,
 hostname: null,
 hash: null,
 search: null,
 query: null,
 pathname: '//foo/bar',
 path: '//foo/bar',
 href: '//foo/bar' }
*/

url模塊化

將一個(gè)url對(duì)象轉(zhuǎn)換成一個(gè)url字符串,url對(duì)象中的屬性為url.parse()產(chǎn)生的對(duì)象的屬性。

url.parse()url.format()互為逆操作。

例子如下:

const url = require("url");
var Urlobj = {
 protocol: 'http:',
 slashes: true,
 auth: null,
 host: 'localhost:8888',
 port: '8888',
 hostname: 'localhost',
 hash: null,
 search: '?name=bigbear&memo=helloworld&memo=helloC',
 query: { name: 'bigbear', memo: [ 'helloworld', 'helloC' ] },
 pathname: '/bb',
 path: '/bb?name=bigbear&memo=helloworld&memo=helloC',
 }
console.log(
 url.format(Urlobj)
)
//輸出:http://localhost:8888/bb?name=bigbear&memo=helloworld&memo=helloC

路徑解析:url.resolve(from, to)

url.resolve()方法解決了目標(biāo)URL相對(duì)于基本URL的方式類(lèi)似于Web瀏覽器解決錨標(biāo)記href。

官方手冊(cè)例子:

url.resolve('/one/two/three', 'four');  
// '/one/two/four'

url.resolve('http://example.com/', '/one'); 
// 'http://example.com/one'

url.resolve('http://example.com/one', '/two'); 
// 'http://example.com/two'

總結(jié)

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

相關(guān)文章

  • 淺談node.js 命令行工具(cli)

    淺談node.js 命令行工具(cli)

    nodejs開(kāi)發(fā)命令行工具,流程相對(duì)簡(jiǎn)單,但一套完整的命令行程序開(kāi)發(fā)流程下來(lái),還是需要下點(diǎn)功夫,這篇文章主要介紹了淺談node.js 命令行工具(cli),感興趣的小伙伴們可以參考一下
    2018-05-05
  • nodejs 圖片預(yù)覽和上傳的示例代碼

    nodejs 圖片預(yù)覽和上傳的示例代碼

    本篇文章主要介紹了nodejs 圖片預(yù)覽和上傳的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • 從零開(kāi)始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例

    從零開(kāi)始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例

    這篇文章主要介紹了Node.js設(shè)置HTTP頭的方法,詳細(xì)分析了常見(jiàn)HTTP頭的功能、原理及相關(guān)設(shè)置操作技巧,需要的朋友可以參考下
    2017-04-04
  • Nodejs中crypto模塊的安全知識(shí)講解

    Nodejs中crypto模塊的安全知識(shí)講解

    本篇文章給大家詳細(xì)介紹了Nodejs中crypto模塊的安全知識(shí)的相關(guān)內(nèi)容,需要的朋友跟著小編一下學(xué)習(xí)參考下吧。
    2018-01-01
  • Koa2框架快速入門(mén)與基本使用方式

    Koa2框架快速入門(mén)與基本使用方式

    這篇文章主要介紹了Koa2框架快速入門(mén)與基本使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • mocha的時(shí)序規(guī)則講解

    mocha的時(shí)序規(guī)則講解

    今天小編就為大家分享一篇關(guān)于mocha的時(shí)序規(guī)則講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • nodejs簡(jiǎn)單實(shí)現(xiàn)中英文翻譯

    nodejs簡(jiǎn)單實(shí)現(xiàn)中英文翻譯

    這篇文章主要介紹了nodejs簡(jiǎn)單實(shí)現(xiàn)中英文翻譯的方法和示例,雖然還存在著不小的問(wèn)題,但是也算是基本能用了,這里推薦給大家。
    2015-05-05
  • Windows部署NVM并下載多版本Node.js的方法(含刪除原有Node的方法)

    Windows部署NVM并下載多版本Node.js的方法(含刪除原有Node的方法)

    這篇文章主要介紹了Windows部署NVM并下載多版本Node.js的方法(含刪除原有Node的方法),文中通過(guò)圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家了解Node.js有一定的幫助,需要的朋友可以參考下
    2025-01-01
  • node項(xiàng)目使用http模塊發(fā)送get-post請(qǐng)求方式

    node項(xiàng)目使用http模塊發(fā)送get-post請(qǐng)求方式

    這篇文章主要介紹了node項(xiàng)目使用http模塊發(fā)送get-post請(qǐng)求方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Node.js斷點(diǎn)續(xù)傳的實(shí)現(xiàn)

    Node.js斷點(diǎn)續(xù)傳的實(shí)現(xiàn)

    最近做了個(gè)項(xiàng)目,應(yīng)項(xiàng)目需求,需要傳圖片、Excel等,幾M的大小可以很快就上傳到服務(wù)器,但是大的就需要斷點(diǎn)上傳,本文就介紹一下,感興趣的可以了解一下
    2021-05-05

最新評(píng)論

雷州市| 宝清县| 朝阳县| 民乐县| 澄迈县| 阿鲁科尔沁旗| 务川| 淮阳县| 海南省| 香港| 祁门县| 略阳县| 图木舒克市| 乐山市| 惠水县| 韩城市| 淳化县| 达孜县| 班玛县| 西乡县| 巴青县| 揭东县| 商水县| 屏南县| 兴安盟| 兰溪市| 密山市| 务川| 黄平县| 巍山| 临沧市| 凤翔县| 察雅县| 慈利县| 崇明县| 成安县| 襄垣县| 仁怀市| 黎川县| 青阳县| 通化市|