File: //usr/share/doc/nodejs/api/querystring.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Query String Node.js v4.2.6 Manual & Documentation</title>
<link rel="stylesheet" href="assets/style.css">
<link rel="stylesheet" href="assets/sh.css">
<link rel="canonical" href="querystring.html">
</head>
<body class="alt apidoc" id="api-section-querystring">
<div id="content" class="clearfix">
<div id="column2" class="interior">
<div id="intro" class="interior">
<a href="/" title="Go back to the home page">
Node.js (1)
</a>
</div>
<ul>
<li><a class="nav-documentation" href="documentation.html">About these Docs</a></li>
<li><a class="nav-synopsis" href="synopsis.html">Synopsis</a></li>
<li><a class="nav-assert" href="assert.html">Assertion Testing</a></li>
<li><a class="nav-buffer" href="buffer.html">Buffer</a></li>
<li><a class="nav-addons" href="addons.html">C/C++ Addons</a></li>
<li><a class="nav-child_process" href="child_process.html">Child Processes</a></li>
<li><a class="nav-cluster" href="cluster.html">Cluster</a></li>
<li><a class="nav-console" href="console.html">Console</a></li>
<li><a class="nav-crypto" href="crypto.html">Crypto</a></li>
<li><a class="nav-debugger" href="debugger.html">Debugger</a></li>
<li><a class="nav-dns" href="dns.html">DNS</a></li>
<li><a class="nav-domain" href="domain.html">Domain</a></li>
<li><a class="nav-errors" href="errors.html">Errors</a></li>
<li><a class="nav-events" href="events.html">Events</a></li>
<li><a class="nav-fs" href="fs.html">File System</a></li>
<li><a class="nav-globals" href="globals.html">Globals</a></li>
<li><a class="nav-http" href="http.html">HTTP</a></li>
<li><a class="nav-https" href="https.html">HTTPS</a></li>
<li><a class="nav-modules" href="modules.html">Modules</a></li>
<li><a class="nav-net" href="net.html">Net</a></li>
<li><a class="nav-os" href="os.html">OS</a></li>
<li><a class="nav-path" href="path.html">Path</a></li>
<li><a class="nav-process" href="process.html">Process</a></li>
<li><a class="nav-punycode" href="punycode.html">Punycode</a></li>
<li><a class="nav-querystring active" href="querystring.html">Query Strings</a></li>
<li><a class="nav-readline" href="readline.html">Readline</a></li>
<li><a class="nav-repl" href="repl.html">REPL</a></li>
<li><a class="nav-stream" href="stream.html">Stream</a></li>
<li><a class="nav-string_decoder" href="string_decoder.html">String Decoder</a></li>
<li><a class="nav-timers" href="timers.html">Timers</a></li>
<li><a class="nav-tls" href="tls.html">TLS/SSL</a></li>
<li><a class="nav-tty" href="tty.html">TTY</a></li>
<li><a class="nav-dgram" href="dgram.html">UDP/Datagram</a></li>
<li><a class="nav-url" href="url.html">URL</a></li>
<li><a class="nav-util" href="util.html">Utilities</a></li>
<li><a class="nav-v8" href="v8.html">V8</a></li>
<li><a class="nav-vm" href="vm.html">VM</a></li>
<li><a class="nav-zlib" href="zlib.html">ZLIB</a></li>
</ul>
</div>
<div id="column1" data-id="querystring" class="interior">
<header>
<h1>Node.js v4.2.6 Documentation</h1>
<div id="gtoc">
<p>
<a href="index.html" name="toc">Index</a> |
<a href="all.html">View on single page</a> |
<a href="querystring.json">View as JSON</a>
</p>
</div>
<hr>
</header>
<div id="toc">
<h2>Table of Contents</h2>
<ul>
<li><a href="#querystring_query_string">Query String</a><ul>
<li><a href="#querystring_querystring_escape">querystring.escape</a></li>
<li><a href="#querystring_querystring_parse_str_sep_eq_options">querystring.parse(str[, sep][, eq][, options])</a></li>
<li><a href="#querystring_querystring_stringify_obj_sep_eq_options">querystring.stringify(obj[, sep][, eq][, options])</a></li>
<li><a href="#querystring_querystring_unescape">querystring.unescape</a></li>
</ul>
</li>
</ul>
</div>
<div id="apicontent">
<h1>Query String<span><a class="mark" href="#querystring_query_string" id="querystring_query_string">#</a></span></h1>
<pre class="api_stability_2">Stability: 2 - Stable</pre><!--name=querystring-->
<p>This module provides utilities for dealing with query strings.
It provides the following methods:
</p>
<h2>querystring.escape<span><a class="mark" href="#querystring_querystring_escape" id="querystring_querystring_escape">#</a></span></h2>
<p>The escape function used by <code>querystring.stringify</code>,
provided so that it could be overridden if necessary.
</p>
<h2>querystring.parse(str[, sep][, eq][, options])<span><a class="mark" href="#querystring_querystring_parse_str_sep_eq_options" id="querystring_querystring_parse_str_sep_eq_options">#</a></span></h2>
<p>Deserialize a query string to an object.
Optionally override the default separator (<code>'&'</code>) and assignment (<code>'='</code>)
characters.
</p>
<p>Options object may contain <code>maxKeys</code> property (equal to 1000 by default), it'll
be used to limit processed keys. Set it to 0 to remove key count limitation.
</p>
<p>Options object may contain <code>decodeURIComponent</code> property (<code>querystring.unescape</code> by default),
it can be used to decode a <code>non-utf8</code> encoding string if necessary.
</p>
<p>Example:
</p>
<pre><code>querystring.parse('foo=bar&baz=qux&baz=quux&corge')
// returns
{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }
// Suppose gbkDecodeURIComponent function already exists,
// it can decode `gbk` encoding string
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
{ decodeURIComponent: gbkDecodeURIComponent })
// returns
{ w: '中文', foo: 'bar' }</code></pre>
<h2>querystring.stringify(obj[, sep][, eq][, options])<span><a class="mark" href="#querystring_querystring_stringify_obj_sep_eq_options" id="querystring_querystring_stringify_obj_sep_eq_options">#</a></span></h2>
<p>Serialize an object to a query string.
Optionally override the default separator (<code>'&'</code>) and assignment (<code>'='</code>)
characters.
</p>
<p>Options object may contain <code>encodeURIComponent</code> property (<code>querystring.escape</code> by default),
it can be used to encode string with <code>non-utf8</code> encoding if necessary.
</p>
<p>Example:
</p>
<pre><code>querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' })
// returns
'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':')
// returns
'foo:bar;baz:qux'
// Suppose gbkEncodeURIComponent function already exists,
// it can encode string with `gbk` encoding
querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
{ encodeURIComponent: gbkEncodeURIComponent })
// returns
'w=%D6%D0%CE%C4&foo=bar'</code></pre>
<h2>querystring.unescape<span><a class="mark" href="#querystring_querystring_unescape" id="querystring_querystring_unescape">#</a></span></h2>
<p>The unescape function used by <code>querystring.parse</code>,
provided so that it could be overridden if necessary.
</p>
<p>It will try to use <code>decodeURIComponent</code> in the first place,
but if that fails it falls back to a safer equivalent that
doesn't throw on malformed URLs.
</p>
</div>
</div>
</div>
<script src="assets/sh_main.js"></script>
<script src="assets/sh_javascript.min.js"></script>
<script>highlight(undefined, undefined, 'pre');</script>
</body>
</html>