• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html>
2<html lang="en">
3<head>
4  <meta charset="utf-8">
5  <meta name="viewport" content="width=device-width">
6  <meta name="nodejs.org:node-version" content="v14.21.2">
7  <title>About this documentation | Node.js v14.21.2 Documentation</title>
8  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic&display=fallback">
9  <link rel="stylesheet" href="assets/style.css">
10  <link rel="stylesheet" href="assets/hljs.css">
11  <link rel="canonical" href="https://nodejs.org/api/documentation.html">
12</head>
13<body class="alt apidoc" id="api-section-documentation">
14  <div id="content" class="clearfix">
15    <div id="column2" class="interior">
16      <div id="intro" class="interior">
17        <a href="/" title="Go back to the home page">
18          Node.js
19        </a>
20      </div>
21      <ul>
22<li><a href="documentation.html" class="nav-documentation active">About this documentation</a></li>
23<li><a href="synopsis.html" class="nav-synopsis">Usage and example</a></li>
24</ul>
25<hr class="line">
26<ul>
27<li><a href="assert.html" class="nav-assert">Assertion testing</a></li>
28<li><a href="async_hooks.html" class="nav-async_hooks">Async hooks</a></li>
29<li><a href="buffer.html" class="nav-buffer">Buffer</a></li>
30<li><a href="addons.html" class="nav-addons">C++ addons</a></li>
31<li><a href="n-api.html" class="nav-n-api">C/C++ addons with Node-API</a></li>
32<li><a href="embedding.html" class="nav-embedding">C++ embedder API</a></li>
33<li><a href="child_process.html" class="nav-child_process">Child processes</a></li>
34<li><a href="cluster.html" class="nav-cluster">Cluster</a></li>
35<li><a href="cli.html" class="nav-cli">Command-line options</a></li>
36<li><a href="console.html" class="nav-console">Console</a></li>
37<li><a href="corepack.html" class="nav-corepack">Corepack</a></li>
38<li><a href="crypto.html" class="nav-crypto">Crypto</a></li>
39<li><a href="debugger.html" class="nav-debugger">Debugger</a></li>
40<li><a href="deprecations.html" class="nav-deprecations">Deprecated APIs</a></li>
41<li><a href="diagnostics_channel.html" class="nav-diagnostics_channel">Diagnostics Channel</a></li>
42<li><a href="dns.html" class="nav-dns">DNS</a></li>
43<li><a href="domain.html" class="nav-domain">Domain</a></li>
44<li><a href="errors.html" class="nav-errors">Errors</a></li>
45<li><a href="events.html" class="nav-events">Events</a></li>
46<li><a href="fs.html" class="nav-fs">File system</a></li>
47<li><a href="globals.html" class="nav-globals">Globals</a></li>
48<li><a href="http.html" class="nav-http">HTTP</a></li>
49<li><a href="http2.html" class="nav-http2">HTTP/2</a></li>
50<li><a href="https.html" class="nav-https">HTTPS</a></li>
51<li><a href="inspector.html" class="nav-inspector">Inspector</a></li>
52<li><a href="intl.html" class="nav-intl">Internationalization</a></li>
53<li><a href="modules.html" class="nav-modules">Modules: CommonJS modules</a></li>
54<li><a href="esm.html" class="nav-esm">Modules: ECMAScript modules</a></li>
55<li><a href="module.html" class="nav-module">Modules: <code>module</code> API</a></li>
56<li><a href="packages.html" class="nav-packages">Modules: Packages</a></li>
57<li><a href="net.html" class="nav-net">Net</a></li>
58<li><a href="os.html" class="nav-os">OS</a></li>
59<li><a href="path.html" class="nav-path">Path</a></li>
60<li><a href="perf_hooks.html" class="nav-perf_hooks">Performance hooks</a></li>
61<li><a href="policy.html" class="nav-policy">Policies</a></li>
62<li><a href="process.html" class="nav-process">Process</a></li>
63<li><a href="punycode.html" class="nav-punycode">Punycode</a></li>
64<li><a href="querystring.html" class="nav-querystring">Query strings</a></li>
65<li><a href="readline.html" class="nav-readline">Readline</a></li>
66<li><a href="repl.html" class="nav-repl">REPL</a></li>
67<li><a href="report.html" class="nav-report">Report</a></li>
68<li><a href="stream.html" class="nav-stream">Stream</a></li>
69<li><a href="string_decoder.html" class="nav-string_decoder">String decoder</a></li>
70<li><a href="timers.html" class="nav-timers">Timers</a></li>
71<li><a href="tls.html" class="nav-tls">TLS/SSL</a></li>
72<li><a href="tracing.html" class="nav-tracing">Trace events</a></li>
73<li><a href="tty.html" class="nav-tty">TTY</a></li>
74<li><a href="dgram.html" class="nav-dgram">UDP/datagram</a></li>
75<li><a href="url.html" class="nav-url">URL</a></li>
76<li><a href="util.html" class="nav-util">Utilities</a></li>
77<li><a href="v8.html" class="nav-v8">V8</a></li>
78<li><a href="vm.html" class="nav-vm">VM</a></li>
79<li><a href="wasi.html" class="nav-wasi">WASI</a></li>
80<li><a href="worker_threads.html" class="nav-worker_threads">Worker threads</a></li>
81<li><a href="zlib.html" class="nav-zlib">Zlib</a></li>
82</ul>
83<hr class="line">
84<ul>
85<li><a href="https://github.com/nodejs/node" class="nav-https-github-com-nodejs-node">Code repository and issue tracker</a></li>
86</ul>
87    </div>
88
89    <div id="column1" data-id="documentation" class="interior">
90      <header>
91        <div class="header-container">
92          <h1>Node.js v14.21.2 documentation</h1>
93          <button class="theme-toggle-btn" id="theme-toggle-btn" title="Toggle dark mode/light mode" aria-label="Toggle dark mode/light mode" hidden>
94            <svg xmlns="http://www.w3.org/2000/svg" class="icon dark-icon" height="24" width="24">
95              <path fill="none" d="M0 0h24v24H0z" />
96              <path d="M11.1 12.08c-2.33-4.51-.5-8.48.53-10.07C6.27 2.2 1.98 6.59 1.98 12c0 .14.02.28.02.42.62-.27 1.29-.42 2-.42 1.66 0 3.18.83 4.1 2.15A4.01 4.01 0 0111 18c0 1.52-.87 2.83-2.12 3.51.98.32 2.03.5 3.11.5 3.5 0 6.58-1.8 8.37-4.52-2.36.23-6.98-.97-9.26-5.41z"/>
97              <path d="M7 16h-.18C6.4 14.84 5.3 14 4 14c-1.66 0-3 1.34-3 3s1.34 3 3 3h3c1.1 0 2-.9 2-2s-.9-2-2-2z"/>
98            </svg>
99            <svg xmlns="http://www.w3.org/2000/svg" class="icon light-icon" height="24" width="24">
100              <path d="M0 0h24v24H0z" fill="none" />
101              <path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/>
102            </svg>
103          </button>
104        </div>
105        <div id="gtoc">
106          <ul>
107            <li>
108              <a href="index.html">Index</a>
109            </li>
110            <li>
111              <a href="all.html">View on single page</a>
112            </li>
113            <li>
114              <a href="documentation.json">View as JSON</a>
115            </li>
116
117    <li class="version-picker">
118      <a href="#">View another version <span>&#x25bc;</span></a>
119      <ol class="version-picker"><li><a href="https://nodejs.org/docs/latest-v19.x/api/documentation.html">19.x</a></li>
120<li><a href="https://nodejs.org/docs/latest-v18.x/api/documentation.html">18.x <b>LTS</b></a></li>
121<li><a href="https://nodejs.org/docs/latest-v17.x/api/documentation.html">17.x</a></li>
122<li><a href="https://nodejs.org/docs/latest-v16.x/api/documentation.html">16.x <b>LTS</b></a></li>
123<li><a href="https://nodejs.org/docs/latest-v15.x/api/documentation.html">15.x</a></li>
124<li><a href="https://nodejs.org/docs/latest-v14.x/api/documentation.html">14.x <b>LTS</b></a></li>
125<li><a href="https://nodejs.org/docs/latest-v13.x/api/documentation.html">13.x</a></li>
126<li><a href="https://nodejs.org/docs/latest-v12.x/api/documentation.html">12.x</a></li>
127<li><a href="https://nodejs.org/docs/latest-v11.x/api/documentation.html">11.x</a></li>
128<li><a href="https://nodejs.org/docs/latest-v10.x/api/documentation.html">10.x</a></li>
129<li><a href="https://nodejs.org/docs/latest-v9.x/api/documentation.html">9.x</a></li>
130<li><a href="https://nodejs.org/docs/latest-v8.x/api/documentation.html">8.x</a></li>
131<li><a href="https://nodejs.org/docs/latest-v7.x/api/documentation.html">7.x</a></li>
132<li><a href="https://nodejs.org/docs/latest-v6.x/api/documentation.html">6.x</a></li>
133<li><a href="https://nodejs.org/docs/latest-v5.x/api/documentation.html">5.x</a></li>
134<li><a href="https://nodejs.org/docs/latest-v4.x/api/documentation.html">4.x</a></li>
135<li><a href="https://nodejs.org/docs/latest-v0.12.x/api/documentation.html">0.12.x</a></li>
136<li><a href="https://nodejs.org/docs/latest-v0.10.x/api/documentation.html">0.10.x</a></li></ol>
137    </li>
138
139            <li class="edit_on_github"><a href="https://github.com/nodejs/node/edit/master/doc/api/documentation.md">Edit on GitHub</a></li>
140          </ul>
141        </div>
142        <hr>
143      </header>
144
145      <details id="toc" open><summary>Table of contents</summary><ul>
146<li><a href="#documentation_about_this_documentation">About this documentation</a>
147<ul>
148<li><a href="#documentation_contributing">Contributing</a></li>
149<li><a href="#documentation_stability_index">Stability index</a></li>
150<li><a href="#documentation_stability_overview">Stability overview</a></li>
151<li><a href="#documentation_json_output">JSON output</a></li>
152<li><a href="#documentation_system_calls_and_man_pages">System calls and man pages</a></li>
153</ul>
154</li>
155</ul></details>
156
157      <div id="apicontent">
158        <h2>About this documentation<span><a class="mark" href="#documentation_about_this_documentation" id="documentation_about_this_documentation">#</a></span></h2>
159
160
161<p>Welcome to the official API reference documentation for Node.js!</p>
162<p>Node.js is a JavaScript runtime built on the <a href="https://v8.dev/">V8 JavaScript engine</a>.</p>
163<section><h3>Contributing<span><a class="mark" href="#documentation_contributing" id="documentation_contributing">#</a></span></h3>
164<p>Report errors in this documentation in <a href="https://github.com/nodejs/node/issues/new">the issue tracker</a>. See
165<a href="https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md">the contributing guide</a> for directions on how to submit pull requests.</p>
166</section><section><h3>Stability index<span><a class="mark" href="#documentation_stability_index" id="documentation_stability_index">#</a></span></h3>
167
168<p>Throughout the documentation are indications of a section's stability. Some APIs
169are so proven and so relied upon that they are unlikely to ever change at all.
170Others are brand new and experimental, or known to be hazardous.</p>
171<p>The stability indices are as follows:</p>
172<p></p><div class="api_stability api_stability_0">Stability: 0 - Deprecated. The feature may emit warnings. Backward
173compatibility is not guaranteed.</div><p></p>
174<!-- separator -->
175<p></p><div class="api_stability api_stability_1">Stability: 1 - Experimental. The feature is not subject to
176<a href="https://semver.org/">Semantic Versioning</a> rules. Non-backward compatible changes or removal may
177occur in any future release. Use of the feature is not recommended in
178production environments.</div><p></p>
179<!-- separator -->
180<p></p><div class="api_stability api_stability_2">Stability: 2 - Stable. Compatibility with the npm ecosystem is a high
181priority.</div><p></p>
182<!-- separator -->
183<p></p><div class="api_stability api_stability_3">Stability: 3 - Legacy. The feature is no longer recommended for use. While it
184likely will not be removed, and is still covered by semantic-versioning
185guarantees, use of the feature should be avoided.</div><p></p>
186<p>Use caution when making use of Experimental features, particularly within
187modules. Users may not be aware that experimental features are being used.
188Bugs or behavior changes may surprise users when Experimental API
189modifications occur. To avoid surprises, use of an Experimental feature may need
190a command-line flag. Experimental features may also emit a <a href="process.html#process_event_warning">warning</a>.</p>
191</section><section><h3>Stability overview<span><a class="mark" href="#documentation_stability_overview" id="documentation_stability_overview">#</a></span></h3>
192<!-- STABILITY_OVERVIEW_SLOT_BEGIN --><table><thead><tr><th>API</th><th>Stability</th></tr></thead><tbody><tr><td class="module_stability"><a href="assert.html">assert</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="async_hooks.html">async_hooks</a></td><td class="api_stability api_stability_1">(1) Experimental</td></tr><tr><td class="module_stability"><a href="buffer.html">buffer</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="child_process.html">child_process</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="cluster.html">cluster</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="console.html">console</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="crypto.html">crypto</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="dgram.html">dgram</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="diagnostics_channel.html">diagnostics_channel</a></td><td class="api_stability api_stability_1">(1) Experimental</td></tr><tr><td class="module_stability"><a href="dns.html">dns</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="domain.html">domain</a></td><td class="api_stability api_stability_0">(0) Deprecated</td></tr><tr><td class="module_stability"><a href="fs.html">fs</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="http.html">http</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="http2.html">http/2</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="https.html">https</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="inspector.html">inspector</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="modules.html">module</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="os.html">os</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="path.html">path</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="perf_hooks.html">performance_measurement_apis</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="punycode.html">punycode</a></td><td class="api_stability api_stability_0">(0) Deprecated</td></tr><tr><td class="module_stability"><a href="querystring.html">querystring</a></td><td class="api_stability api_stability_3">(3) Legacy</td></tr><tr><td class="module_stability"><a href="readline.html">readline</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="repl.html">repl</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="stream.html">stream</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="string_decoder.html">string_decoder</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="timers.html">timers</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="tls.html">tls_(ssl)</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="tracing.html">trace_events</a></td><td class="api_stability api_stability_1">(1) Experimental</td></tr><tr><td class="module_stability"><a href="tty.html">tty</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="url.html">url</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="util.html">util</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="vm.html">vm</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="wasi.html">webassembly_system_interface_(wasi)</a></td><td class="api_stability api_stability_1">(1) Experimental</td></tr><tr><td class="module_stability"><a href="worker_threads.html">worker_threads</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr><tr><td class="module_stability"><a href="zlib.html">zlib</a></td><td class="api_stability api_stability_2">(2) Stable</td></tr></tbody></table><!-- STABILITY_OVERVIEW_SLOT_END -->
193</section><section><h3>JSON output<span><a class="mark" href="#documentation_json_output" id="documentation_json_output">#</a></span></h3>
194<div class="api_metadata">
195<span>Added in: v0.6.12</span>
196</div>
197<p>Every <code>.html</code> document has a corresponding <code>.json</code> document. This is for IDEs
198and other utilities that consume the documentation.</p>
199</section><section><h3>System calls and man pages<span><a class="mark" href="#documentation_system_calls_and_man_pages" id="documentation_system_calls_and_man_pages">#</a></span></h3>
200<p>Node.js functions which wrap a system call will document that. The docs link
201to the corresponding man pages which describe how the system call works.</p>
202<p>Most Unix system calls have Windows analogues. Still, behavior differences may
203be unavoidable.</p></section>
204        <!-- API END -->
205      </div>
206    </div>
207  </div>
208  <script>
209    'use strict';
210    {
211      const kCustomPreference = 'customDarkTheme';
212      const userSettings = sessionStorage.getItem(kCustomPreference);
213      const themeToggleButton = document.getElementById('theme-toggle-btn');
214      if (userSettings === null && window.matchMedia) {
215        const mq = window.matchMedia('(prefers-color-scheme: dark)');
216        if ('onchange' in mq) {
217          function mqChangeListener(e) {
218            document.body.classList.toggle('dark-mode', e.matches);
219          }
220          mq.addEventListener('change', mqChangeListener);
221          if (themeToggleButton) {
222            themeToggleButton.addEventListener('click', function() {
223              mq.removeEventListener('change', mqChangeListener);
224            }, { once: true });
225          }
226        }
227        if (mq.matches) {
228          document.body.classList.add('dark-mode');
229        }
230      } else if (userSettings === 'true') {
231        document.body.classList.add('dark-mode');
232      }
233      if (themeToggleButton) {
234        themeToggleButton.hidden = false;
235        themeToggleButton.addEventListener('click', function() {
236          sessionStorage.setItem(
237            kCustomPreference,
238            document.body.classList.toggle('dark-mode')
239          );
240        });
241      }
242    }
243  </script>
244</body>
245</html>
246