手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >nodejs URL模块操作URL相关方法介绍
nodejs URL模块操作URL相关方法介绍
摘要:url模块处理HTTP请求时url模块使用率超高,因为该模块允许解析URL、生成URL,以及拼接URL。首先我们来看看一个完整的URL的各组...

url模块

处理HTTP请求时url模块使用率超高,因为该模块允许解析URL、生成URL,以及拼接URL。首先我们来看看一个完整的URL的各组成部分。

复制代码 代码如下:

href

-----------------------------------------------------------------

host path

--------------- ----------------------------

http: // user:pass @ host.com : 8080 /p/a/t/h ?query=string #hash

----- --------- -------- ---- -------- ------------- -----

protocol auth hostname port pathname search hash

------------

query

我们可以使用.parse方法来将一个URL字符串转换为URL对象,示例如下。

复制代码 代码如下:

url.parse('http://user:pass@host.com:8080/p/a/t/h?query=string#hash');

/* =>

{ protocol: 'http:',

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' }

*/

传给.parse方法的不一定要是一个完整的URL,例如在HTTP服务器回调函数中,request.url不包含协议头和域名,但同样可以用.parse方法解析。

复制代码 代码如下:

http.createServer(function (request, response) {

var tmp = request.url; // => "/foo/bar"

url.parse(tmp);

/* =>

{ protocol: null,

slashes: null,

auth: null,

host: null,

port: null,

hostname: null,

hash: null,

search: '?a=b',

query: 'a=b',

pathname: '/foo/bar',

path: '/foo/bar?a=b',

href: '/foo/bar?a=b' }

*/

}).listen(80);

.parse方法还支持第二个和第三个布尔类型可选参数。第二个参数等于true时,该方法返回的URL对象中,query字段不再是一个字符串,而是一个经过querystring模块转换后的参数对象。第三个参数等于true时,该方法可以正确解析不带协议头的URL,例如//www.example.com/foo/bar。

反过来,format方法允许将一个URL对象转换为URL字符串,示例如下。

复制代码 代码如下:

url.format({

protocol: 'http:',

host: 'www.example.com',

pathname: '/p/a/t/h',

search: 'query=string'

});

/* =>

'http://www.example.com/p/a/t/h?query=string'

*/

另外,.resolve方法可以用于拼接URL,示例如下。

复制代码 代码如下:

url.resolve('http://www.example.com/foo/bar', '../baz');

/* =>

http://www.example.com/baz

*/

Query String

querystring模块用于实现URL参数字符串与参数对象的互相转换,示例如下。

复制代码 代码如下:

querystring.parse('foo=bar&baz=qux&baz=quux&corge');

/* =>

{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }

*/

querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });

/* =>

'foo=bar&baz=qux&baz=quux&corge='

*/

【nodejs URL模块操作URL相关方法介绍】相关文章:

jQuery插件制作之全局函数用法实例

Node.js本地文件操作之文件拷贝与目录遍历的方法

javascript动态创建链接的方法

javascript搜索框效果实现方法

JavaScript操作Cookie方法实例分析

iscroll.js的上拉下拉刷新时无法回弹的解决方法

javascript无刷新评论实现方法

node.js微信公众平台开发教程

Javascript 高阶函数使用介绍

JavaScript中的fontsize()方法使用介绍

精品推荐
分类导航