美文网首页程序员程序园
Node-url模块的学习笔记

Node-url模块的学习笔记

作者: 狂暴小绵羊 | 来源:发表于2019-05-01 01:03 被阅读11次

我们可以很简单的获取到请求的url,但有数据提交上来的url是十分复杂和不确定的。很不利于编写业务逻辑。所以我们就要将url拆分成我们能用的数据。node的url模块就是帮助我们对提交上来的url进行解析处理

parse(urlStr,queryString,AnalysisHost)

 解析url,返回一个url属性对象
  • urlStr: 要解析的url地址
  • queryString: 解析出来的query是字符串还是查询对象,true是对象 false是字符串
  • AnalysisHost: 是否要解析出来主机名
示例代码
  var url = require('url')
  var obj = url.parse('http://www.baidu.com/vdsa?ie=utf-8&word=sad',true,true)
  console.log(obj);
结果:
Url组成部分:
  1. protocol:url的通信协议(http/https)
  2. slashes:如果协议protocol冒号后跟的是两个斜杠字符(/),那么值为true
  3. auth:URL的用户名与密码部分
  4. host:url的主机名 “baidu.com”
  5. port: 端口号
  6. hostname: hostname是host属性排除端口port之后的小写的主机名部分
  7. hash:哈希#后面字符串包括#
  8. search:URL的查询字符串部分,包括开头的问号字符(?)
  9. query: 不包含问号(?)的search字符串
  10. pathname:URL的整个路径部分。跟在host后面,截止问号(?)或者哈希字符(#)分隔
  11. path:由pathname与search组成的串接,不包含hash字符后面的东西
  12. href:解析后的完整的URL字符串,protocol和host都会被转换成小写。

url.format(urlObject)

 将一个url对象格式化成url字符串
  • urlObject:url对象
    示例代码
    var url = require('url')
    var obj = {
        protocol: 'http:',
        slashes: true,
        host: 'www.baidu.com',
        hostname: 'www.baidu.com',
        search: '?ie=utf-8&word=sad',
        query: { ie: 'utf-8', word: 'sad' },
        pathname: '/vdsa'
    }
    console.log(url.format(obj));
    
    结果:

url.resolve(from,to)

 用来插入或替换URL内容
  • from 源地址
  • to 需要添加或替换的标签
示例代码
    const url = require("url");

    console.log(url.resolve("/one/two/three","four"));
    console.log(url.resolve("/one/two/","four"));
    console.log(url.resolve("http://www.baidu.com","/topic"));
    console.log(url.resolve("http://www.baidu.com/one","topic"));
结果:

相关文章

网友评论

    本文标题:Node-url模块的学习笔记

    本文链接:https://www.haomeiwen.com/subject/fgfinqtx.html