源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

nodejs URL模块操作URL相关方法介绍

  • 时间:2022-11-08 05:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:nodejs URL模块操作URL相关方法介绍
[b]url模块[/b] 处理HTTP请求时url模块使用率超高,因为该模块允许解析URL、生成URL,以及拼接URL。首先我们来看看一个完整的URL的各组成部分。
[u]复制代码[/u] 代码如下:
                         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对象,示例如下。
[u]复制代码[/u] 代码如下:
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方法解析。
[u]复制代码[/u] 代码如下:
http.createServer(function (request, response) {     var tmp = request.url; // => "/foo/bar?a=b"     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字符串,示例如下。
[u]复制代码[/u] 代码如下:
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,示例如下。
[u]复制代码[/u] 代码如下:
url.resolve('http://www.example.com/foo/bar', '../baz'); /* =>   http://www.example.com/baz   */
[b]Query String[/b] querystring模块用于实现URL参数字符串与参数对象的互相转换,示例如下。
[u]复制代码[/u] 代码如下:
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=' */
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部