国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
url
parse(urlString, parseQueryString, slashesDenoteHost)
字串。 %%PRE_BLOCK_3%%
。 %%PRE_BLOCK_4%%
兩個(gè)方法。
。筆者覺(jué)得配到這種情況應(yīng)該不多。
首頁(yè) web前端 js教程 聊聊Node中的url模組和querystring模組

聊聊Node中的url模組和querystring模組

Feb 23, 2023 pm 07:39 PM
前端 node.js 面試

聊聊Node中的url模組和querystring模組

url模組和querystring模組是非常重要的兩個(gè)URL處理模組。在做node服務(wù)端的開(kāi)發(fā)時(shí)會(huì)常用到。

url

在介紹url模組之前我們先來(lái)一張圖,看懂了這張圖對(duì)於url這個(gè)模組你就基本上沒(méi)什麼問(wèn)題了。

聊聊Node中的url模組和querystring模組

我們來(lái)解釋下各自的意義

  • protocol:協(xié)議,需要注意的是包含了:,並且是小寫(xiě)的。 【相關(guān)教學(xué)推薦:nodejs影片教學(xué)程式設(shè)計(jì)教學(xué)
  • slashes:如果:後面跟了兩個(gè)// ,那麼為true。
  • auth:認(rèn)證訊息,如果有密碼,為usrname:passwd,如果沒(méi)有,則為usrname。注意,這裡區(qū)分大小寫(xiě)。
  • host:主機(jī)名稱。注意包含了端口,例如ke.qq.com:8080,並且是小寫(xiě)的。
  • hostname:主機(jī)名,不包含端口,並且是小寫(xiě)的。
  • port: 埠號(hào)。
  • path:路徑部分,包含search部分。
  • pathname:路徑部分,不包含search部分。
  • search:查詢字串,注意,包含了?,此外,值是沒(méi)有經(jīng)過(guò)decode的。
  • query:字串 或 物件。如果是字串,則是search去掉?,其餘一樣;如果是對(duì)象,那麼是decode過(guò)的。
  • hash:哈希部分,注意包含了#。
  • href:原始的位址。不過(guò)要注意的是,protocolhost會(huì)被轉(zhuǎn)成小寫(xiě)字母。

#下面我們來(lái)講解下它的三個(gè)常用方法

parse(urlString, parseQueryString, slashesDenoteHost)

#該方法將會(huì)url字串,解析成object,方便開(kāi)發(fā)者進(jìn)行操作。

const url = require("url");

const str = "http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1";

const obj = url.parse(str);
console.log(obj);

輸出

聊聊Node中的url模組和querystring模組

該方法也支援傳遞另外兩個(gè)參數(shù),parseQueryStringslashesDenoteHos

parseQueryString:(預(yù)設(shè)為false)如為false,則urlObject.query為未解析的字串,例如nick=中文,且對(duì)應(yīng)的值不會(huì)decode;如果parseQueryString為true,則urlObject.queryobject

{ nick: '中文' }

,且值會(huì)被`decode;聊聊Node中的url模組和querystring模組

const url = require("url");

const str = "http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1";

const obj2 = url.parse(str, true);
console.log(obj2);

slashesDenoteHos:(預(yù)設(shè)為false)如果為true,那麼類似//randy/nick裡的randy就會(huì)被認(rèn)為是hostname;如果為 false,則randy被認(rèn)為是

pathname

的一部份。

光看起來(lái)可能不太懂這句話的意思,下面筆者舉個(gè)例子我相信你們就明白了。 聊聊Node中的url模組和querystring模組

const str2 = "//randy/nick";

const obj3 = url.parse(str2, true, false);
console.log(obj3);
const obj4 = url.parse(str2, true, true);
console.log(obj4);

format(urlObject)

#這個(gè)方法就是parse的反向運(yùn)算。將物件轉(zhuǎn)成

url

字串。
const pathObj = {
  protocol: "http:",
  slashes: true,
  auth: "user:password",
  host: "randy.com:8080",
  port: "8080",
  hostname: "randy.com",
  hash: "#part=1",
  search: "?nick=%E4%B8%AD%E6%96%87",
  query: "nick=%E4%B8%AD%E6%96%87",
  pathname: "/index.html",
  path: "/index.html?nick=%E4%B8%AD%E6%96%87",
  href: "http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1",
};

console.log(url.format(pathObj)); // http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1

resolve(from, to)

此方法用於解析相對(duì)於基本URL的目標(biāo)

URL

。
console.log(url.resolve("/one/two/three", "four")); // /one/two/four
console.log(url.resolve("http://example.com/", "/one")); // http://example.com/one
console.log(url.resolve("http://example.com/one", "/two")); // http://example.com/two
console.log(url.resolve("http://example.com/one/ddd/ddd/ddd", "./two")); // http://example.com/one/ddd/ddd/two
console.log(url.resolve("http://example.com/one/ddd/ddd/ddd", "../two")); // http://example.com/one/ddd/two
console.log(url.resolve("http://example.com/one/ddd/ddd/ddd", ".../two")); // http://example.com/one/ddd/ddd/.../two

querystring

querystring這個(gè)模組,也是用來(lái)做url查詢參數(shù)的解析。這裡我們重點(diǎn)分析下它的parse

stringify

兩個(gè)方法。

parse(str, sep, eq, options)

#parse是將查詢字串轉(zhuǎn)換成物件類型,也會(huì)

decode

。 <pre class='brush:php;toolbar:false;'>const querystring = require("querystring"); const str = "nick=randy&age=24&nick2=%E4%B8%AD%E6%96%87"; const obj = querystring.parse(str); console.log(obj); // { nick: 'randy', age: '24', nick2: '中文' }</pre>下面我們?cè)賮?lái)看看它的第二個(gè)和第三個(gè)參數(shù)。其實(shí)相當(dāng)於可以替換

&、=

為自訂字符,下面筆者舉個(gè)例子就很快明白了。 <pre class='brush:php;toolbar:false;'>const str1 = "name-randy|country-cn"; const obj1 = querystring.parse(str1); console.log(obj1); // { 'name-randy|country-cn': '' } const obj2 = querystring.parse(str1, "|", "-"); console.log(obj2); // { name: 'randy', country: 'cn' }</pre>相當(dāng)於把&替換成|,把=取代了

-

。筆者覺(jué)得配到這種情況應(yīng)該不多。

stringify(obj, sep, eq, options)

這個(gè)方法就是上面

parse

的反向運(yùn)算。下面咱們直接上例子

const obj3 = {
  nick: "randy",
  age: "24",
};
const str4 = querystring.stringify(obj3);
console.log(str4); // nick=randy&age=24
###這個(gè)方法也是支援自訂分割符的。 ###
const obj5 = {
  name: "randy",
  country: "cn",
};
const str6 = querystring.stringify(obj5, "|", "-");
console.log(str6); // name-randy|country-c

更多node相關(guān)知識(shí),請(qǐng)?jiān)L問(wèn):nodejs 教程!

以上是聊聊Node中的url模組和querystring模組的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

PHP與Vue:完美搭檔的前端開(kāi)發(fā)利器 PHP與Vue:完美搭檔的前端開(kāi)發(fā)利器 Mar 16, 2024 pm 12:09 PM

PHP與Vue:完美搭檔的前端開(kāi)發(fā)利器在當(dāng)今網(wǎng)路快速發(fā)展的時(shí)代,前端開(kāi)發(fā)變得愈發(fā)重要。隨著使用者對(duì)網(wǎng)站和應(yīng)用的體驗(yàn)要求越來(lái)越高,前端開(kāi)發(fā)人員需要使用更有效率和靈活的工具來(lái)創(chuàng)建響應(yīng)式和互動(dòng)式的介面。 PHP和Vue.js作為前端開(kāi)發(fā)領(lǐng)域的兩個(gè)重要技術(shù),搭配起來(lái)可以稱得上是完美的利器。本文將探討PHP和Vue的結(jié)合,以及詳細(xì)的程式碼範(fàn)例,幫助讀者更好地理解和應(yīng)用這兩

Go語(yǔ)言前端技術(shù)探秘:前端開(kāi)發(fā)新視野 Go語(yǔ)言前端技術(shù)探秘:前端開(kāi)發(fā)新視野 Mar 28, 2024 pm 01:06 PM

Go語(yǔ)言作為一種快速、高效的程式語(yǔ)言,在後端開(kāi)發(fā)領(lǐng)域廣受歡迎。然而,很少有人將Go語(yǔ)言與前端開(kāi)發(fā)聯(lián)繫起來(lái)。事實(shí)上,使用Go語(yǔ)言進(jìn)行前端開(kāi)發(fā)不僅可以提高效率,還能為開(kāi)發(fā)者帶來(lái)全新的視野。本文將探討使用Go語(yǔ)言進(jìn)行前端開(kāi)發(fā)的可能性,並提供具體的程式碼範(fàn)例,幫助讀者更了解這一領(lǐng)域。在傳統(tǒng)的前端開(kāi)發(fā)中,通常會(huì)使用JavaScript、HTML和CSS來(lái)建立使用者介面

Django是前端還是後端?一探究竟! Django是前端還是後端?一探究竟! Jan 19, 2024 am 08:37 AM

Django是一個(gè)由Python編寫(xiě)的web應(yīng)用框架,它強(qiáng)調(diào)快速開(kāi)發(fā)和乾淨(jìng)方法。儘管Django是web框架,但要回答Django是前端還是後端這個(gè)問(wèn)題,需要深入理解前後端的概念。前端是指使用者直接和互動(dòng)的介面,後端是指伺服器端的程序,他們透過(guò)HTTP協(xié)定進(jìn)行資料的互動(dòng)。在前端和後端分離的情況下,前後端程式可以獨(dú)立開(kāi)發(fā),分別實(shí)現(xiàn)業(yè)務(wù)邏輯和互動(dòng)效果,資料的交

C#開(kāi)發(fā)經(jīng)驗(yàn)分享:前端與後端協(xié)同開(kāi)發(fā)技巧 C#開(kāi)發(fā)經(jīng)驗(yàn)分享:前端與後端協(xié)同開(kāi)發(fā)技巧 Nov 23, 2023 am 10:13 AM

身為C#開(kāi)發(fā)者,我們的開(kāi)發(fā)工作通常包括前端和後端的開(kāi)發(fā),而隨著技術(shù)的發(fā)展和專案的複雜性提高,前端與後端協(xié)同開(kāi)發(fā)也變得越來(lái)越重要和複雜。本文將分享一些前端與後端協(xié)同開(kāi)發(fā)的技巧,以幫助C#開(kāi)發(fā)者更有效率地完成開(kāi)發(fā)工作。確定好介面規(guī)範(fàn)前後端的協(xié)同開(kāi)發(fā)離不開(kāi)API介面的交互。要確保前後端協(xié)同開(kāi)發(fā)順利進(jìn)行,最重要的是定義好介面規(guī)格。接口規(guī)範(fàn)涉及到接口的命

前端面試官常問(wèn)的問(wèn)題 前端面試官常問(wèn)的問(wèn)題 Mar 19, 2024 pm 02:24 PM

在前端開(kāi)發(fā)面試中,常見(jiàn)問(wèn)題涵蓋廣泛,包括HTML/CSS基礎(chǔ)、JavaScript基礎(chǔ)、框架和函式庫(kù)、專案經(jīng)驗(yàn)、演算法和資料結(jié)構(gòu)、效能最佳化、跨域請(qǐng)求、前端工程化、設(shè)計(jì)模式以及新技術(shù)和趨勢(shì)。面試官的問(wèn)題旨在評(píng)估候選人的技術(shù)技能、專案經(jīng)驗(yàn)以及對(duì)行業(yè)趨勢(shì)的理解。因此,應(yīng)試者應(yīng)充分準(zhǔn)備這些方面,以展現(xiàn)自己的能力和專業(yè)知識(shí)。

前端怎麼實(shí)現(xiàn)即時(shí)通訊 前端怎麼實(shí)現(xiàn)即時(shí)通訊 Oct 09, 2023 pm 02:47 PM

實(shí)作即時(shí)通訊的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。詳細(xì)介紹:1、WebSocket,它可以在客戶端和伺服器之間建立持久連接,實(shí)現(xiàn)即時(shí)的雙向通信,前端可以使用WebSocket API來(lái)創(chuàng)建WebSocket連接,並透過(guò)發(fā)送和接收訊息來(lái)實(shí)現(xiàn)即時(shí)通訊;2、Long Polling,是一種模擬即時(shí)通訊的技術(shù)等等

Django:前端和後端開(kāi)發(fā)都能搞定的神奇框架! Django:前端和後端開(kāi)發(fā)都能搞定的神奇框架! Jan 19, 2024 am 08:52 AM

Django:前端和後端開(kāi)發(fā)都能搞定的神奇框架! Django是一個(gè)高效、可擴(kuò)展的網(wǎng)路應(yīng)用程式框架。它能夠支援多種Web開(kāi)發(fā)模式,包括MVC和MTV,可以輕鬆地開(kāi)發(fā)出高品質(zhì)的Web應(yīng)用程式。 Django不僅支援後端開(kāi)發(fā),還能夠快速建構(gòu)出前端的介面,透過(guò)模板語(yǔ)言,實(shí)現(xiàn)靈活的視圖展示。 Django把前端開(kāi)發(fā)和後端開(kāi)發(fā)融合成了一種無(wú)縫的整合,讓開(kāi)發(fā)人員不必專門(mén)學(xué)習(xí)

Golang與前端技術(shù)結(jié)合:探討Golang如何在前端領(lǐng)域發(fā)揮作用 Golang與前端技術(shù)結(jié)合:探討Golang如何在前端領(lǐng)域發(fā)揮作用 Mar 19, 2024 pm 06:15 PM

Golang與前端技術(shù)結(jié)合:探討Golang如何在前端領(lǐng)域發(fā)揮作用,需要具體程式碼範(fàn)例隨著互聯(lián)網(wǎng)和行動(dòng)應(yīng)用的快速發(fā)展,前端技術(shù)也愈發(fā)重要。而在這個(gè)領(lǐng)域中,Golang作為一門(mén)強(qiáng)大的後端程式語(yǔ)言,也可以發(fā)揮重要作用。本文將探討Golang如何與前端技術(shù)結(jié)合,以及透過(guò)具體的程式碼範(fàn)例來(lái)展示其在前端領(lǐng)域的潛力。 Golang在前端領(lǐng)域的角色作為一門(mén)高效、簡(jiǎn)潔且易於學(xué)習(xí)的

See all articles