04 url & querystring

node专门为了方便处理url地址封装的模块 url 模块和 相关的 querystring 模块

url


url 中的方法

url.parse(url.string, parseQueryString, slashesDenoteHost)

  • parseQueryString 默认为 false , 表示返回的对象中的query 属性不进行解析和解码, 如果为 true 则返回一个对象并且解码
const url = require('url')
const str = 'http://Chyingp:HelloWorld@ke.qq.com:8080/index.html?nick=%E7%A8%8B%E5%BA%8F%E7%8C%BF%E5%B0%8F%E5%8D%A1#part=1';

const obj = url.parse(str)
console.log(obj)
// 打印结果
/*
{
  protocol: 'http:',
  slashes: true,
  auth: 'Chyingp:HelloWorld',
  host: 'ke.qq.com:8080',
  port: '8080',
  hostname: 'ke.qq.com',
  hash: '#part=1',
  search: '?nick=%E7%A8%8B%E5%BA%8F%E7%8C%BF%E5%B0%8F%E5%8D%A1',
  query: 'nick=%E7%A8%8B%E5%BA%8F%E7%8C%BF%E5%B0%8F%E5%8D%A1',
  pathname: '/index.html',
  path: '/index.html?nick=%E7%A8%8B%E5%BA%8F%E7%8C%BF%E5%B0%8F%E5%8D%A1',
  href: 'http://Chyingp:HelloWorld@ke.qq.com:8080/index.html?nick=%E7%A8%8B%E5%BA%8F%E7%8C%BF%E5%B0%8F%E5%8D%A1#part=1' }
*/
console.log(url.parse(str, true))
/*
{
  protocol: 'http:',
  slashes: true,
  auth: 'Chyingp:HelloWorld',
  host: 'ke.qq.com:8080',
  port: '8080',
  hostname: 'ke.qq.com',
  hash: '#part=1',
  search: '?nick=%E7%A8%8B%E5%BA%8F%E7%8C%BF%E5%B0%8F%E5%8D%A1',
  query: { nick: '程序猿小卡' },
  pathname: '/index.html',
  path: '/index.html?nick=%E7%A8%8B%E5%BA%8F%E7%8C%BF%E5%B0%8F%E5%8D%A1',
  href: 'http://Chyingp:HelloWorld@ke.qq.com:8080/index.html?nick=%E7%A8%8B%E5%BA%8F%E7%8C%BF%E5%B0%8F%E5%8D%A1#part=1' }
*/

其他两个方法为 url.format(urlObj) 和 url.resove(form, to)

querystring


querystring 模块专门用来解析url查询参数的, 常用的两个方法

querystring.parse()

const querystring = require('querystring')
const str = 'abc=123&def=4556'
const obj = qureystring.parse(str)
console.log(JSON.stringify(obj, null, 4))

/*
{
    "abc": "123",
    "def": "4556"
}
*/

querystring.stringify()

const obj = {
    "abc": "123",
    "def": "456"
}
const str = querystring.stringify(obj) 
console.log(str)
// "abc=123&def=456"
posted @ 2020-02-25 10:25  达文西9527  阅读(132)  评论(0编辑  收藏  举报