NodeJs基础学习--url模块、querystring模块(6)

url模块

  • url.parse
  • url.format
  • url.resolve
url.parse(string)

将url字符串地址转换为一个对象:

const url = require('url');
const urlString = 'https://nodejs.org/zh-cn/'
const urlObj = url.parse(urlString )
console.log(urlObj)
//打印结果
Url {
  protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'nodejs.org',
  port: null,
  hostname: 'nodejs.org',
  hash: null,
  search: null,
  query: null,
  pathname: '/zh-cn/',
  path: '/zh-cn/',
  href: 'https://nodejs.org/zh-cn/' }
  • protocal: url协议
  • auth: 用户认证
  • host: 主机
  • port: 端口
  • hostname: 主机名
  • hash: 片段部分,也就是URL#之后的部分
  • search: url中HTTP GET的信息,包含了 ?
  • query: 和 search一样,但是不包含 ?
  • pathname: 跟在host之后的整个文件路径。但是不包含 ? 及 ?之后的字符串。
  • path: 和pathname一样,但是包含 ? 及之后的字符串,但是不包含hash
  • href: 原始的url
url.format(urlObj)

format方法与parse方法恰恰相反,根据对象生成url字符串

const url = require('url');
var urlObj = {
   protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'nodejs.org',
  port: null,
  hostname: 'nodejs.org',
  hash: null,
  search: null,
  query: null,
  pathname: '/zh-cn/',
  path: '/zh-cn/',
  href: 'https://nodejs.org/zh-cn/'
};

const urlString = url.format(urlObj);
console.log(urlString);
url.resolve(string,string)

用于拼接URL,返回拼接后的url字符串

const url = require('url');
let baseUrl = 'https://www.baidu.com/';
let configUrl = '/search';
const httpUrl = url.resolve(baseUrl, configUrl);
console.log(httpUrl);
//打印结果
https://www.baidu.com/search

querystring模块

querystring模块用于处理query字符串,包含以下方法:

  • parse、decode
  • escape
  • unescape
  • encode、stringify
parse与decode

parse与decode方法是一样的,都用于将query字符串解析成对象

var qs = require('querystring');
qs.parse('a=1&b=2&c=3');
// 结果
{
  a:'1',
  b:'2',
  c:'3'
}

//参数:parse('string','分割符','赋值符','配置对象{}')
//分隔符(默认为&),
//赋值符(默认为=),
//配置对象,
//配置对象又有两个可选参数
//maxKeys(最多能解析多少个键值对)
//decodeURIComponent(用于解码非utf-8编码字符串,默认querystring.unescape)。
stringify、encode

用于将对象转换成query字符串。如果属性值不是string、boolean和number中的一种,它就不能序列化,返回内容中的关键字对应的值为空。

var obj = {a:1, b:2, func: function(){console.log("func")}}
qs.stringify(obj)
qs.encode(obj)
//结果
'a=1&b=2&func='

//参数同上 'string','分割符','赋值符','配置对象{}'
encode

参数编码

unescape

参数解码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容