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

 更新时间:2015年03月03日 10:10:52   投稿:junjie  
这篇文章主要介绍了nodejs URL模块操作URL相关方法介绍,本文讲解了parse方法、format方法、querystring方法等,需要的朋友可以参考下

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?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字符串,示例如下。

复制代码 代码如下:

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='
*/

相关文章

  • Node.js控制台彩色输出的方法与原理实例详解

    Node.js控制台彩色输出的方法与原理实例详解

    这篇文章主要给大家介绍了关于Node.js控制台彩色输出的方法与原理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Node.js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Mongoose经常返回e11000 error的原因分析

    Mongoose经常返回e11000 error的原因分析

    这篇文章主要给大家分析了Mongoose经常返回e11000 error的原因,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友可以们下面来一起看看吧。
    2017-03-03
  • Node.js多进程的方法与参数实例说明

    Node.js多进程的方法与参数实例说明

    这篇文章主要介绍了Node.js多进程的方法与参数实例说明,Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能,需要的朋友可以参考下
    2023-05-05
  • nodejs取得当前执行路径的方法

    nodejs取得当前执行路径的方法

    今天小编就为大家分享一篇nodejs取得当前执行路径的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • node.js中的buffer.toJSON方法使用说明

    node.js中的buffer.toJSON方法使用说明

    这篇文章主要介绍了node.js中的buffer.toJSON方法使用说明,本文介绍了buffer.toJSON的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • 如何从0开始用node写一个自己的命令行程序

    如何从0开始用node写一个自己的命令行程序

    这篇文章主要介绍了如何从0开始用node写一个自己的命令行程序,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • node.js中的fs.fstatSync方法使用说明

    node.js中的fs.fstatSync方法使用说明

    这篇文章主要介绍了node.js中的fs.fstatSync方法使用说明,本文介绍了fs.fstatSync的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • node.js实现身份认证的示例代码

    node.js实现身份认证的示例代码

    本文主要介绍了 node.js实现身份认证的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Koa日志中间件封装开发详解

    Koa日志中间件封装开发详解

    这篇文章主要介绍了Koa日志中间件封装开发详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • npm install安装失败常见问题的解决办法小结

    npm install安装失败常见问题的解决办法小结

    有时候前端安装npm install 安装包总是安装不上,下面这篇文章主要给大家介绍了关于npm install安装失败常见问题的解决办法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05

最新评论