- 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 - Streams
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 快速入门
- Node.js - MySQL创建数据库
- Node.js - MySQL创建表
- Node.js - MySQL Insert Into
- Node.js - MySQL Select From
- Node.js - MySQL Where 子句
- Node.js - MySQL Order By
- Node.js - MySQL Delete
- Node.js - MySQL Update
- Node.js - MySQL Join
- Node.js MongoDB
- Node.js - MongoDB 快速入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB Insert
- Node.js - MongoDB Find
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB Delete
- Node.js - MongoDB Update
- Node.js - MongoDB Limit
- Node.js - MongoDB Join
- Node.js模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - utility 模块
- Node.js - Web 模块
Node.js - url.format() 方法
NodeJS url.format() 方法返回一个派生自 urlObject 的格式化 URL 字符串。
urlObject 可以具有以下属性
- protocol:这指定了 URL 的协议方案(例如:https:)。
- slashes:一个 Boolean 值,该值指定协议后是否跟两个 ASCII 正斜杠 (//)。
- auth:这指定了 URL 的身份验证段(例如:用户名:密码)。
- 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)
- 如果 urlObject.protocol 是一个字符串,它将被追加到结果中。否则,如果 urlObject.protocol 不是字符串或未定义,则会抛出 Error。
- 如果 urlObject.protocol 不以 ASCII 冒号 (:) 字符结尾,则文本字符串 (:)将附加到结果中。
- urlObject.slashes
- 这指定了一个布尔值。
- 如果满足以下任一条件,则文本字符串 (//) 将追加到结果中。
- 如果 urlObject.slashes 为 true。
- 如果 urlObject.protocol 是 http、https、ftp、gopher 或 file。
- urlObject.auth
- 如果 urlObject.auth 不是未定义的,并且 urlObject.host 或 urlObject.hostname 不是未定义的,则 urlObject.auth 的值将被强制转换为字符串,并附加到结果中,后跟文本字符串“@”。
- urlObject.host(urlObject.host)
- 如果 urlObject.host 是一个字符串,它将被追加到结果中。否则,如果不是未定义且不是字符串,则将抛出 TypeError。
- 如果 urlObject.host 未定义,则考虑 urlObject.hostname。
- urlObject.hostname
- 如果 urlObject.hostname 是一个字符串,它将被追加到结果中。否则,如果不是未定义且不是字符串,则会引发 TypeError。
- urlObject.port
- 如果考虑主机名并指定了 urlObject.port,则文本字符串 ':“' 将追加到结果中,后跟 urlObject.port。
- urlObject.pathname
- 如果 urlObject.pathname 是一个字符串,该字符串不为空,并且最初没有 ASCII 正斜杠 (/),则文本字符串“/”将追加到结果中。
- urlObject.hash 的值将追加到结果中。
- 如果 urlObject.hash 属性不是字符串或未定义,则会引发 TypeError。
- urlObject.search(urlObject.search)
- 如果 urlObject.search 是一个字符串,并且不以 ASCII 问号 (?) 字符开头,则文本字符串 '?' 将追加到结果中。
- urlObject.search 值将追加到结果中。
- 如果 urlObject.search 不是未定义的,也不是字符串,则将抛出 TypeError。
- urlObject.query
- 如果 urlObject.query 是一个对象,则文本字符串 '?' 将与传递 urlObject.query 值的查询字符串模块 stringify() 方法一起追加到结果中。
- 如果同时指定了 urlObject.search 和 urlObject,则只会考虑 urlObject.search 并将其追加到结果中。
- urlObject.hash
- 如果 urlObject.hash 是一个字符串:
- 即使 urlObject.hash 的值最初没有 ASCII 哈希字符 (#),文本字符串“#”也会追加到结果中。
- urlObject.hash 的值将追加到结果中。
- 否则,如果 urlObject.hash 属性不是字符串或未定义,则会抛出 TypeError。
- 如果 urlObject.hash 是一个字符串:
- urlObject.href – 这将被忽略。
- 最后,format() 方法将形成一个格式化的 URL(结果)。
在以下示例中,我们将使用 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() 方法返回了一个派生自 urlObject 的格式化 URL 字符串。
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