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

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

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

前言

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

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

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

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

官方手冊上面的一張圖是這樣子的:

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

protocol: 請求協(xié)議

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

auth:URL中身份驗證信息部分

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

port: 主機的端口號部分

pathname: URL的路徑部分,位于主機名之后請求查詢之前

search: URL 的“查詢字符串”部分,包括開頭的問號。

path: pathname 和 search 連在一起。

query: 查詢字符串中的參數(shù)部分(問號后面部分字符串),或者使用 querystring.parse() 解析后返回的對象。

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

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

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

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

例子如下

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' }
*/

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

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' }
*/

第三個參數(shù)對比

例子如下:

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模塊化

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

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相對于基本URL的方式類似于Web瀏覽器解決錨標(biāo)記href。

官方手冊例子:

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é)

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

相關(guān)文章

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

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

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

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

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

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

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

    Nodejs中crypto模塊的安全知識講解

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

    Koa2框架快速入門與基本使用方式

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

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

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

    nodejs簡單實現(xiàn)中英文翻譯

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

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

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

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

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

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

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

最新評論

宿松县| 晋州市| 望都县| 禹州市| 务川| 唐河县| 仁怀市| 舞阳县| 永年县| 德令哈市| 台南县| 日照市| 额济纳旗| 营口市| 阜康市| 鄄城县| 桑日县| 襄垣县| 漳平市| 峨眉山市| 安塞县| 安顺市| 铅山县| 高密市| 彭山县| 西藏| 秦皇岛市| 望江县| 伊金霍洛旗| 朝阳区| 天津市| 瑞安市| 沧州市| 芮城县| 东乌珠穆沁旗| 渝北区| 南靖县| 盱眙县| 曲靖市| 华蓥市| 隆林|