Node.js的url模块简介
什么是URL
URL是Uniform Location Resource的缩写,翻译为“统一资源定位符”,也就是描述资源位置的固定表示方法。被URL描述的资源可以位于互联网上,也可以位于本地。
URL的组成结构
基本URL包含模式(或者成为协议),服务器名(或IP地址),路径和文件名。
第一部分:协议
通过协议,可以获取打开URL的方式,最常见的协议是http,从网上查到的协议如下:
http 超文本传输协议
https 用安全套接字层传送的超文本传输协议
ftp 文件传输协议
mailto 电子邮件地址
ldap 轻型目录访问协议搜索
file 本地文件
news Usenet新闻组
gopher Gopher协议
telnet Telnet协议
第二部分:地址与路径
文件所在的服务器名称+端口号/用户名密码+文件的路径+文件本身的名称
当URL没有给出对应的文件名是,一般访问默认的文件名,例如index.html或default.html
Nodejs中的URL
URL对象的成员
URL对象中的成员如下:
href 被传入的未经解析的URL地址,包含协议(protocol)、主机名(host)等,都表示为小写
protocol:请求的协议名称,表示为小写,如‘http:’
slashes:冒号后的斜线,值为true或false
host:主机及端口的全部信息,例如‘host.com:8080’
auth:身份验证信息,例如‘user:pass’
hostname:主机名,例如‘host.com’
port:端口号,例如‘8000’
pathname:路径名,在主机名之后,查询语句之前的地址部分,包含‘/’,例如‘/p/a/t/h’
search:URL地址的查询部分,包括开头的问号,例如‘?query=string’
path:路径名与查询的串联,没有经过解码,例如‘/p/a/t/h?query=string’
query:查询部分的参数,或者解析后的查询字符串,例如‘query=string’或者{'query':'string'}
hash:URL地址中‘#’字符后的片段
URL对象中的函数
1、url.format(urlObj) :
将一个URL对象转化成格式化的URL地址。
url.format({
protocol:"http:",
host:"182.163.0:60",
port:"60"
});
/*
返回值:
'http://182.163.0:60'
*/
2、url.parse(urlStr[, parseQueryString][, slashesDenoteHost]) :
将一个URL地址解析为一个URL对象,第二个参数传入布尔值,表示是否解析查询字符串,第三个参数传入布尔值,表示pathname是否去除host。示例:
url.parse只传一个参数的情况:
var url = require('url');
console.log(url.parse("http://user:pass@host.com:8080/p/a/t/h?query=string#hash"));
返回值:
{
protocol: 'http:',
slashes: true,
auth: 'user:pass',
host: 'host.com:8080',
port: '8080',
hostname: 'host.com',
hash: '#hash',
search: '?query=string',
query: 'query=string',
pathname: '/p/a/t/h',
path: '/p/a/t/h?query=string',
href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
}
//没有设置第二个参数为true时,query属性为一个字符串类型
url.parse第二个参数为true的情况:
url.parse("http://user:pass@host.com:8080/p/a/t/h?query=string#hash",true);
/*
返回值:
{
protocol: 'http:',
slashes: true,
auth: 'user:pass',
host: 'host.com:8080',
port: '8080',
hostname: 'host.com',
hash: '#hash',
search: '?query=string',
query: { query: 'string' },
pathname: '/p/a/t/h',
path: '/p/a/t/h?query=string',
href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
}
返回的url对象中,query属性为一个对象
*/
3、url.resolve(from, to) :
将from指向的URL转换到to。
Node.js的url模块简介的更多相关文章
- node.js 的url模块
var URL = require('url'); var testUrl = "http://www.baidu.com:8080/index.php?content=abc" ...
- node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...
- node.js中ws模块创建服务端和客户端,网页WebSocket客户端
首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...
- node.js获取url中的各个参数
实例代码test.js var http=require('http'); var url=require('url'); var querystring=require('querystring') ...
- 利用Node.js的Net模块实现一个命令行多人聊天室
1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...
- Node.js的Formidable模块的使用
今天总结了下Node.js的Formidable模块的使用,下面做一些简要的说明. 1) 创建Formidable.IncomingForm对象 var form = new formidab ...
- Node.js入门:模块机制
CommonJS规范 早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来 ...
- Node.js的net模块
net模块提供了一个异步网络包装器,用于TCP网络编程,它包含了创建服务器和客户端的方法 创建TCP服务器 net.createServer方法 创建客户端去连接服务器 net.connect方法 简 ...
- node.js中net模块创建服务器和客户端(TCP)
node.js中net模块创建服务器和客户端 1.node.js中net模块创建服务器(net.createServer) // 将net模块 引入进来 var net = require(" ...
随机推荐
- const char* to char*(当函数传递参数时)
来自 https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169 https://blog.csdn.net/hebbely/art ...
- kettle 连接 mysql8.0 报错的解决办法 org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying to connect to the database Error connecting to database: (using class org.gjt.mm.mysql.
1.下载 mysql8.0 驱动放到 如下目录中 mysql8.0以上的驱动下载链接:mysql-connet-8.0.13 2.配置你连接的数据库 找到如下文件打开编辑 连接信息:下面是我本地的配置 ...
- etcd数据单机部署
单机下载 版本信息请参考https://github.com/etcd-io/etcd/releases 本次以最新版本3.4.1为例https://github.com/etcd-io/etcd/r ...
- 洛谷 P2331 最大子矩阵 题解
题面 对于m==1和m==2两种状态进行不同的dp: 设sum[i][1]表示第一列的前缀和,sum[i][2]表示第二列的前缀和: sum[i][1]=sum[i-1][1]+a[i][1]; su ...
- echarts图标使用(一)
var data = []; // Parametric curve // for (var t = 0; t < 25; t += 0.001) { // var x = (1 + 0.25 ...
- sql server 获取随机数函数RAND()和RAND(x)
--RAND(x)返回一个随机浮点值v,范围在0~1之间(即0<=v<=1.0) --若指定一个整数参数x,则它被用作种子值,使用相同的种子数将产生重复序列.如果同一种子值多次调用RAND ...
- springboot在集成mybatis的时候老是报错 The server time zone value '�й���ʱ��' is unrecognized
我已经解决了,感谢万能网友. 解决办法参见:https://blog.csdn.net/yunfeng482/article/details/86698133
- Delphi 保留字
- 苹果预热 WWDC 2019
Erika Hairston 是一位来自旧金山的 23 岁耶鲁大学毕业生,她的首款 app Zimela 刚刚上线.这款应用主要为了宣传科技行业的多样性.Hairston 设计的 Zimela 通过建 ...
- laravel 学习之第二章
Controller Controller之Request 获取请求的值 namespace App\Http\Controllers; use Illuminate\http\Request; pu ...