- Node.js 教程
- Node.js - 首頁
- Node.js - 簡介
- Node.js - 環境搭建
- Node.js - 第一個應用
- Node.js - REPL 終端
- Node.js - 命令列選項
- Node.js - 包管理器 (NPM)
- Node.js - 回撥函式概念
- Node.js - 上傳檔案
- Node.js - 傳送郵件
- Node.js - 事件
- Node.js - 事件迴圈
- Node.js - 事件發射器
- Node.js - 偵錯程式
- Node.js - 全域性物件
- Node.js - 控制檯
- Node.js - 程序
- Node.js - 應用擴充套件
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 緩衝區
- Node.js - 流
- Node.js - 檔案系統
- Node.js MySQL
- Node.js - MySQL 快速入門
- Node.js - MySQL 建立資料庫
- Node.js - MySQL 建立表
- Node.js - MySQL 插入資料
- Node.js - MySQL 查詢資料
- Node.js - MySQL 條件查詢
- Node.js - MySQL 排序
- Node.js - MySQL 刪除資料
- Node.js - MySQL 更新資料
- Node.js - MySQL 連線查詢
- Node.js MongoDB
- Node.js - MongoDB 快速入門
- Node.js - MongoDB 建立資料庫
- Node.js - MongoDB 建立集合
- Node.js - MongoDB 插入資料
- Node.js - MongoDB 查詢資料
- Node.js - MongoDB 查詢
- Node.js - MongoDB 排序
- Node.js - MongoDB 刪除資料
- Node.js - MongoDB 更新資料
- Node.js - MongoDB 資料限制
- Node.js - MongoDB 連線查詢
- Node.js 模組
- Node.js - 模組
- Node.js - 內建模組
- Node.js - 實用程式模組
- Node.js - Web 模組
- Node.js 有用資源
- Node.js - 快速指南
- Node.js - 有用資源
- Node.js - 討論
NodeJS - url.format() 方法
NodeJS url.format() 方法返回一個格式化的 URL 字串,該字串派生自 urlObject。
urlObject 可以具有以下屬性
protocol: 指定 URL 的協議方案(例如:https:)。
slashes: 一個布林值,指定協議之後是否跟隨著兩個 ASCII 正斜槓 (//)。
auth: 指定 URL 的身份驗證段(例如:username:password)。
username: 指定身份驗證段中的使用者名稱。
password: 指定身份驗證段中的密碼。
host: 指定包含埠號的主機名。
hostname: 指定不包含埠號的主機名。
port: 指示埠號。
pathname: 指示 URL 路徑。
query: 包含解析的查詢字串,除非 parsing 設定為 false。
hash: 指定 URL 的片段部分,包括 “#”。
href: 指定完整的 URL。
origin: 指定 URL 的來源。
語法
以下是 NodeJS url.format() 方法的語法
url.format(urlObject)
引數
urlObject: 指定一個 URL 物件(由 parse() 方法返回或以其他方式構造)。
返回值
此方法接受一個已解析的 URL 並返回一個格式化的 URL 字串。
NodeJS url.format() 方法的格式化過程如下
首先,建立一個新的空字串(考慮為“result”)。
urlObject.protocol
如果 urlObject.protocol 是字串,則將其附加到 result。否則,如果 urlObject.protocol 不是字串或不是未定義,則會丟擲錯誤。
如果 urlObject.protocol 不以 ASCII 冒號 (:) 字元結尾,則將字面量字串 (:) 附加到 result。
urlObject.slashes
這指定一個布林值。
如果以下任一條件為真,則將字面量字串 (//) 附加到 result。
如果 urlObject.slashes 為 true。
如果 urlObject.protocol 為 http、https、ftp、gopher 或 file。
urlObject.auth
如果 urlObject.auth 不是未定義,並且 urlObject.host 或 urlObject.hostname 不是未定義,則將 urlObject.auth 的值強制轉換為字串並附加到 result,後跟字面量字串“@”。
urlObject.host
如果 urlObject.host 是字串,則將其附加到 result。否則,如果未定義且不是字串,則會丟擲 TypeError。
如果 urlObject.host 未定義,則考慮 urlObject.hostname。
urlObject.hostname
如果 urlObject.hostname 是字串,則將其附加到 result。否則,如果未定義且不是字串,則會丟擲 TypeError。
urlObject.port
如果考慮 hostname 並且指定了 urlObject.port,則將字面量字串 ‘:’ 附加到 result,後跟 urlObject.port。
urlObject.pathname
如果 urlObject.pathname 是非空字串且開頭沒有 ASCII 正斜槓 (/),則將字面量字串“/”附加到 result。
urlObject.hash 的值將附加到 result。
如果 urlObject.hash 屬性不是字串或不是未定義,則會丟擲 TypeError。
urlObject.search
如果 urlObject.search 是字串且不是以 ASCII 問號 (?) 字元開頭,則將字面量字串 ‘?’ 附加到 result。
urlObject.search 值將附加到 result。
如果 urlObject.search 未定義且不是字串,則會丟擲 TypeError。
urlObject.query
如果 urlObject.query 是物件,則將字面量字串 ‘?’ 附加到 result,以及 querystring 模組的 stringify() 方法,傳遞 urlObject.query 的值。
如果同時指定了 urlObject.search 和 urlObject,則只考慮 urlObject.search 並將其附加到 result。
urlObject.hash
如果 urlObject.hash 是字串
即使 urlObject.hash 的值開頭沒有 ASCII 井號 (#) 字元,也會將字面量字串 “#” 附加到 result。
urlObject.hash 的值將附加到 result。
否則,如果 urlObject.hash 屬性不是字串或不是未定義,則會丟擲 TypeError。
urlObject.href – 此屬性將被忽略。
最後,format() 方法將形成一個格式化的 URL (result)。
示例
在下面的示例中,我們使用 NodeJS parse() 方法解析 URL 字串。然後,我們將返回的 urlObject 傳遞給 NodeJS format() 方法。
const url = require('url');
const address = 'https://user:pass@site.com:2000/pa/th?q=val#hash';
let urlObject = url.parse(address, true);
console.log(url.format(urlObject));
輸出
正如我們在輸出中看到的,NodeJS format() 方法返回一個格式化的 URL 字串,該字串派生自 urlObject。
https://user:pass@site.com:2000/pa/th?q=val#hash
示例
在下面的示例中,我們構造一個 URL 物件而不是解析。
const url = require('url');
console.log(url.format({
protocol: 'https:',
auth: 'user:pass',
host: 'site.com:2000',
port: '2000',
hostname: 'site.com',
hash: '#hash',
search: '?q=val',
query: { page:'one', format: 'json'},
pathname: '/pa/th',
path: '/pa/th?q=val',
}))
輸出
正如我們在下面的輸出中看到的,format() 方法檢索到一個格式化的字串,該字串是從 urlObject 獲得的。
https://user:pass@site.com:2000/pa/th?q=val#hash
