node.js - querystring模块的使用

发表于:2018-03-12

querystring是node.js自带的模块不需要安装

querystring只提供4个方法

  • querystring.escape(str)
  • querystring.unescape(str)
  • querystring.parse(str[, sep[, eq[, options]]])
  • querystring.stringify(obj[, sep[, eq[, options]]])

querystring.escape(str)

对字符串进行编码

const querystring = require('querystring');
var str = 'name=王五&age=22';
console.log(querystring.escape(str));

// name%3D%E7%8E%8B%E4%BA%94%26age%3D22

querystring.unescape(str)

对字符串进行解码, 与querystring.escape相反

const querystring = require('querystring');
var str = 'name%3D%E7%8E%8B%E4%BA%94%26age%3D22';
console.log(querystring.unescape(str));

// name=王五&age=22

querystring.parse(str[, sep[, eq[, options]]])

将字符串解析成对象

const querystring = require('querystring')
var str = 'name=王五&age=22';
console.log(querystring.parse(str));

// { name: '王五', age: '22' }

querystring.parse的第2个参数可选,用于连接键值对的分隔符,默认'&'

const querystring = require('querystring')
var str = 'name=王五|age=22';
console.log(querystring.parse(str, '|'));

// { name: '王五', age: '22' }

querystring.parse的第3个参数可选,用于连接键和值的分隔符,默认'='

const querystring = require('querystring')
var str = 'name:王五&age:22';
console.log(querystring.parse(str, null, ':'));

// { name: '王五', age: '22' }

querystring.parse的第4个参数可选, 传入一个对象

const querystring = require('querystring')
var str = 'name=王五&age=22';
console.log(querystring.parse(str, null, null, {
    // <Number> 指定要解析最大的键数,默认值为1000, 如果指定0不限制
    maxKeys: 0,

    // <Function> 对百分比进行解码时使用的函数,默认querystring.unescape()
    decodeURIComponent: function (str) {
        return querystring.unescape(str);
    }
}));

querystring.stringify(obj[, sep[, eq[, options]]])

将一个对象进行格式化,与querystring.parse是相反

const querystring = require('querystring')
var obj = {
    name: '王五',
    age: 22
};
console.log(querystring.stringify(obj));

// name=%E7%8E%8B%E4%BA%94&age=22

querystring.stringify的第2个参数可选,用于连接键值对的分隔符,默认'&'

const querystring = require('querystring')
var obj = {
    name: '王五',
    age: 22
};
console.log(querystring.stringify(obj, '|'));

// name=%E7%8E%8B%E4%BA%94|age=22

querystring.stringify的第3个参数可选,用于连接键和值的分隔符,默认'='

const querystring = require('querystring')
var obj = {
    name: '王五',
    age: 22
};
console.log(querystring.stringify(obj, '|', ':'));

// name:%E7%8E%8B%E4%BA%94|age:22

querystring.stringify的第4个参数可选, 传入一个对象

const querystring = require('querystring');
var obj = {
    name: '王五',
    age: 22
};
console.log(querystring.stringify(obj, null, null, {
    // <Function> 将URL不安全的字符进行百分比编码时使用的函数,默认querystring.escape()
    encodeURIComponent: function (str) {
        return querystring.escape(str);
    }
}));
Node.js
广告