<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title> Node.js v0.10.24 Manual &amp; Documentation</title>
  <link rel="stylesheet" href="assets/style.css">
  <link rel="stylesheet" href="assets/sh.css">
  <link rel="canonical" href="http://nodejs.org/api/_toc.html">
</head>
<body class="alt apidoc" id="api-section-_toc">
    <div id="intro" class="interior">
        <a href="/" title="Go back to the home page">
            <img id="logo" src="http://nodejs.org/images/logo-light.png" alt="node.js">
        </a>
    </div>
    <div id="content" class="clearfix">
        <div id="column2" class="interior">
            <ul>
                <li><a href="/" class="home">Home</a></li>
                <li><a href="/download/" class="download">Download</a></li>
                <li><a href="/about/" class="about">About</a></li>
                <li><a href="http://npmjs.org/" class="npm">npm Registry</a></li>
                <li><a href="http://nodejs.org/api/" class="docs current">Docs</a></li>
                <li><a href="http://blog.nodejs.org" class="blog">Blog</a></li>
                <li><a href="/community/" class="community">Community</a></li>
                <li><a href="/logos/" class="logos">Logos</a></li>
                <li><a href="http://jobs.nodejs.org/" class="jobs">Jobs</a></li>
            </ul>
            <p class="twitter"><a href="http://twitter.com/nodejs">@nodejs</a></p>
        </div>

        <div id="column1" class="interior">
          <header>
            <h1>Node.js v0.10.24 Manual &amp; 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="_toc.json">View as JSON</a>
              </p>
            </div>
            <hr>
          </header>

          <div id="toc">
            <h2>Table of Contents</h2>
            
          </div>

          <div id="apicontent">
            <ul>
<li><a href="documentation.html">About these Docs</a></li>
<li><a href="synopsis.html">Synopsis</a></li>
<li><a href="assert.html">Assertion Testing</a></li>
<li><a href="buffer.html">Buffer</a></li>
<li><a href="addons.html">C/C++ Addons</a></li>
<li><a href="child_process.html">Child Processes</a></li>
<li><a href="cluster.html">Cluster</a></li>
<li><a href="console.html">Console</a></li>
<li><a href="crypto.html">Crypto</a></li>
<li><a href="debugger.html">Debugger</a></li>
<li><a href="dns.html">DNS</a></li>
<li><a href="domain.html">Domain</a></li>
<li><a href="events.html">Events</a></li>
<li><a href="fs.html">File System</a></li>
<li><a href="globals.html">Globals</a></li>
<li><a href="http.html">HTTP</a></li>
<li><a href="https.html">HTTPS</a></li>
<li><a href="modules.html">Modules</a></li>
<li><a href="net.html">Net</a></li>
<li><a href="os.html">OS</a></li>
<li><a href="path.html">Path</a></li>
<li><a href="process.html">Process</a></li>
<li><a href="punycode.html">Punycode</a></li>
<li><a href="querystring.html">Query Strings</a></li>
<li><a href="readline.html">Readline</a></li>
<li><a href="repl.html">REPL</a></li>
<li><a href="stream.html">Stream</a></li>
<li><a href="string_decoder.html">String Decoder</a></li>
<li><a href="timers.html">Timers</a></li>
<li><a href="tls.html">TLS/SSL</a></li>
<li><a href="tty.html">TTY</a></li>
<li><a href="dgram.html">UDP/Datagram</a></li>
<li><a href="url.html">URL</a></li>
<li><a href="util.html">Utilities</a></li>
<li><a href="vm.html">VM</a></li>
<li><a href="zlib.html">ZLIB</a></li>
</ul>

          </div>
        </div>
    </div>
    <div id="footer">
        <a href="http://joyent.com" class="joyent-logo">Joyent</a>
        <ul class="clearfix">
            <li><a href="/">Node.js</a></li>
            <li><a href="/download/">Download</a></li>
            <li><a href="/about/">About</a></li>
            <li><a href="http://npmjs.org/">npm Registry</a></li>
            <li><a href="http://nodejs.org/api/">Docs</a></li>
            <li><a href="http://blog.nodejs.org">Blog</a></li>
            <li><a href="/community/">Community</a></li>
            <li><a href="/logos/">Logos</a></li>
            <li><a href="http://jobs.nodejs.org/">Jobs</a></li>
            <li><a href="http://twitter.com/nodejs" class="twitter">@nodejs</a></li>
        </ul>

        <p>Copyright <a href="http://joyent.com/">Joyent, Inc</a>, Node.js is a <a href="/trademark-policy.pdf">trademark</a> of Joyent, Inc. View <a href="https://raw.github.com/joyent/node/v0.10.24/LICENSE">license</a>.</p>
    </div>

  <script src="../sh_main.js"></script>
  <script src="../sh_javascript.min.js"></script>
  <script>highlight(undefined, undefined, 'pre');</script>
  <script>
    window._gaq = [['_setAccount', 'UA-10874194-2'], ['_trackPageview']];
    (function(d, t) {
      var g = d.createElement(t),
          s = d.getElementsByTagName(t)[0];
      g.src = '//www.google-analytics.com/ga.js';
      s.parentNode.insertBefore(g, s);
    }(document, 'script'));
  </script>
</body>
</html>

