[关闭]
@Wangww0925 2019-08-07T08:03:20.000000Z 字数 2271 阅读 254

url 路由模块

NodeJs


引入url路由模块:var url = require("url");

url 参数

  1. parse(参数1,参数2,参数3) - 获取路径JSON对象
  2. 以下通过该链接为例: http://LOCALhost:3000/aa/bb/index.html?name=laowang&age=100#book
  3. query - 常用,查询信息【不包括问号】,例:name=laowang&age=100 【使用 querystring.parse() 解析后返回的对象】
  4. pathname - 常用,路径 【不包括参数】,例:/aa/bb/index.html
  5. protocol - 请求协议,例:http
  6. slashes -
  7. auth - URL中身份验证信息
  8. host - 主机名 + 端口号 【小写格式】,例:localhost:3000
  9. port - 端口号,例:3000
  10. hostname - 主机名 【小写格式】,例:localhost
  11. hash - 锚点 URL #后面部分,包括 #】 ,例:#book
  12. search - 查询信息 【包括问号】 ,例: ?name=laowang&age=100
  13. path - pathname + search ,例: /aa/bb/index.html?name=laowang&age=100
  14. href - 完整路径,例:http://localhost:3000/aa/bb/index.html?name=laowang&age=100#book
  15.   
  16. format() - 拼接路径
  17. resolve(from,to) - 重定向路径
  18. resolveObject
  19. Url
  20. URL
  21. URLSearchParams
  22. domainToASCII
  23. domainToUnicode

url.parse(参数1,参数2,参数3) 获取路径对象 【将url字符串解析并返回一个url对象】

参数1: url(字符串)
参数2: 布尔值,默认false ,true - 返回对象中query的属性为一个对象
参数3: 布尔值,解析主机处理 一般情况下使用不到

注意

只有url.parse(reqUrl,true);是返回对象,才可以访问对象中的数据
  1. var url = require("url");
  2. var reqUrl = "http://localhost:3000/aa/bb/index.html?name=laowang&age=100#book";
  3. var url1 = url.parse(reqUrl);
  4. var url2 = url.parse(reqUrl,false);
  5. var url3 = url.parse(reqUrl,true);
  6. /**
  7. * url1 url2 返回路径JSON对象,url3 返回路径对象
  8. {
  9. protocol: 'http:',
  10. slashes: true,
  11. auth: null,
  12. host: 'localhost:3000',
  13. port: '3000',
  14. hostname: 'localhost',
  15. hash: '#book',
  16. search: '?name=laowang&age=100',
  17. query: 'name=laowang&age=100',
  18. pathname: '/aa/bb/index.html',
  19. path: '/aa/bb/index.html?name=laowang&age=100',
  20. href:
  21. 'http://localhost:3000/aa/bb/index.html?name=laowang&age=100#book'
  22. }
  23. */
  24. // 访问对象中的数据,验证三种方式获得结果
  25. console.log(url1.query.name); // undefinde
  26. console.log(url2.query.name); // undefinde
  27. console.log(url3.query.name); // laowang

url.format() 拼接路径

  1. var url = require("url");
  2. var strUrl = url.format({
  3. protocol: 'http:',
  4. slashes: true,
  5. port: '3000',
  6. hostname: 'localhost',
  7. hash: '#book',
  8. // search: '?name=laowang&age=100',
  9. query: { name: 'laowang', age: '100' }, // 删除search后,此处必须为对象
  10. pathname: '/index.html'
  11. })
  12. console.log(strUrl); // http://localhost:3000/index.html?name=laowang&age=100#book

resolve(form,to) 重定向路径

form: 开始的路径或者说当前路径
to: 想要去往的路径
返回一个组装好的url

注意

只能重定向路径名,不能重定向域名
  1. var url = require("url");
  2. // 同域名之下切换路径 -- 常用
  3. console.log(url.resolve("http://www.baidu.com/aa","bb")); // http://www.baidu.com/bb
  4. // 不同域名之下 取后面的参数作为返回值
  5. console.log(url.resolve("1223","5")); // 5

作者 wendy
2019 年 1月 21日

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注