您的位置:首页 > Web前端 > Node.js

Node.js中的URL处理方法

2017-10-30 22:08 369 查看
今天的主角~~> 统一资源定位符,URL。

URL的几种处理数据的方法:

url.parse( )

url.format( )

url.resolve( )

先来说说

url.parse( urlStr,[parseQueryString],[slashesDenoteHost]);

打开node.exe,没下载的赶紧去官网下载。好了,开始。

第一个参数为url地址。

> url.parse('http://blog.csdn.net:8080/Monica_Dan/artcle/details');
> Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'blog.csdn.net:8080',
port: '8080',
hostname: 'blog.csdn.net',
hash: null,
search: null,
query: null,
pathname: '/Monica_Dan/artcle/details',
path: '/Monica_Dan/artcle/details',
href: 'http://blog.csdn.net:8080/Monica_Dan/artcle/details' }


第二个参数为解析方式,默认情况下采用url自带的解析方式,默认为false;参数为true时表示采用querystring的解析方式。

> url.parse('http://blog.csdn.net:8080/Monica_Dan/artcle/details/list?form=monica&option=learning',true)
> Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'blog.csdn.net:8080',
port: '8080',
hostname: 'blog.csdn.net',
hash: null,
search: '?form=monica&option=learning',
query: { form: 'monica', option: 'learning' },
pathname: '/Monica_Dan/artcle/details/list',
path: '/Monica_Dan/artcle/details/list?form=monica&option=learning',
href: 'http://blog.csdn.net:8080/Monica_Dan/artcle/details/list?form=monica&option=learning' }


第三个参数slashesDenoteHost 。

当url是 ‘http://’ 或 ‘ftp://’ 等标志的协议前缀开头,或直接以地址开头(如 ‘127.0.0.1’ 或 ‘localhost’)的时候是该值为true/false没有区别;当且仅当以2个斜杠打头的时候,比如 ‘//127.0.0.1’ 才有区别。此时如果其值为true,则第一个单个’/’之前的部分被解析为 ‘host’ 和 ‘hostname’,如 ” host : ‘127.0.0.1’ “,如果为false,包括2个反斜杠在内的所有字符串被解析为pathname。

默认的情况:

> url.parse('//blog.csdn.net:8080/Monica_Dan/artcle/details/list?form=monica&option=learning',true,false)
> Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?form=monica&option=learning',
query: { form: 'monica', option: 'learning' },
pathname: '//blog.csdn.net:8080/Monica_Dan/artcle/details/list',
path: '//blog.csdn.net:8080/Monica_Dan/artcle/details/list?form=monica&option=learning',
href: '//blog.csdn.net:8080/Monica_Dan/artcle/details/list?form=monica&option=learning' }


> url.parse('//blog.csdn.net:8080/Monica_Dan/artcle/details/list?form=monica&option=learning',true,true)
> Url {
protocol: null,
slashes: true,
auth: null,
host: 'blog.csdn.net:8080',
port: '8080',
hostname: 'blog.csdn.net',
hash: null,
search: '?form=monica&option=learning',
query: { form: 'monica', option: 'learning' },
pathname: '/Monica_Dan/artcle/details/list',
path: '/Monica_Dan/artcle/details/list?form=monica&option=learning',
href: '//blog.csdn.net:8080/Monica_Dan/artcle/details/list?form=monica&option=learning' }


其次

url.format( ) 生成url地址

> url.format( {
protocol: 'http:',
slashes: true,
auth: null,
host: 'blog.csdn.net:8080',
port: '8080',
hostname: 'blog.csdn.net',
hash: null,
search: null,
query: null,
pathname: '/Monica_Dan/artcle/details',
path: '/Monica_Dan/artcle/details',
href: 'http://blog.csdn.net:8080/Monica_Dan/artcle/details' })
> 'http://blog.csdn.net:8080/Monica_Dan/artcle/details'


最后

url.resolve( )在url插入或替换原有标签

> url.resolve('/one/','/two')
'/two'
> url.resolve('/one/two','/three')
'/three'
> url.resolve('www.baidu.com/','/ok')
'/ok'
> url.resolve('http://www.baidu.com/','/ok')
'http://www.baidu.com/ok'
> url.resolve('http://www.baidu.com','/ok')
'http://www.baidu.com/ok'
> url.resolve('http://www.baidu.com/one','/ok')
'http://www.baidu.com/ok'
> url.resolve('http://www.baidu.com/one/','/ok')
'http://www.baidu.com/ok'
>


下次说一说nodejs里的querystring方法,也算是本篇的拓展篇啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: