クエリ文字列をオブジェクト形式に変換してくれる便利な奴。
※Nodeのバージョンは6.1です。
標準ライブラリ querystring
// 標準ライブラリなので、パッケージインストールは不要。
const querystring = require('querystring')
console.log(querystring)
// { unescapeBuffer: [Function],
// unescape: [Function],
// escape: [Function],
// encode: [Function],
// stringify: [Function],
// decode: [Function],
// parse: [Function] } ← コレ
キホン
querystring.parse(str[, sep][, eq][, options])
使い方一覧
const parse = querystring.parse
シンプルパース
// 文字列をオブジェクト形式に変換する。
console.log(parse("login=yes")) // { login: 'yes' }
割り当て文字指定
// デフォルトでは、=を割り当て文字として認識。
console.log(parse("login>yes")) // { 'login>yes': '' } parse失敗。
// 第三引数に割り当て文字を指定できる。
console.log(parse("login>yes", null, ">")) // { login: 'yes' } parse成功。
セパレータ指定
// 複数対応可能。
console.log(parse("login=yes&member=no")) // { login: 'yes', member: 'no' }
// 第二引数にセパレータを指定可能。
console.log(parse("login=yes/member=no")) // { login: 'yes/member=no' } parse失敗。
console.log(parse("login=yes/member=no", "/")) // { login: 'yes', member: 'no' } parse成功。
オプション指定
// 第四引数はオプション。
// maxKeysで個数制限。
console.log(parse("login=yes&member=no", null, null, {maxKeys: 1})) // { login: 'yes' } 1つだけparse
// decodeURIComponentでdecode指定。
console.log(parse('%D6%D0%CE%C4=yes&メンバー=no')) // { '����': 'yes', 'メンバー': 'no' } デコード失敗
console.log(parse('%D6%D0%CE%C4=yes&メンバー=no', null, null, {decodeURIComponent: gbkDecodeURIComponent})) // { '中文': yes, foo: 'bar' }
公式Doc:https://nodejs.org/api/querystring.html#querystring_querystring_parse_str_sep_eq_options