summaryrefslogtreecommitdiff
path: root/website/api.html
diff options
context:
space:
mode:
authorRyan <ry@tinyclouds.org>2009-06-21 23:27:36 +0200
committerRyan <ry@tinyclouds.org>2009-06-21 23:27:36 +0200
commitf17b76afa4082808919a554293fa03fa6fd7f0f0 (patch)
tree05c564139495b2f231a00c5a84c41594bedcf11c /website/api.html
parentea290e727de256a51f0a4ef9e4ff701da88f975c (diff)
downloadnodejs-f17b76afa4082808919a554293fa03fa6fd7f0f0.tar.gz
nodejs-f17b76afa4082808919a554293fa03fa6fd7f0f0.tar.bz2
nodejs-f17b76afa4082808919a554293fa03fa6fd7f0f0.zip
Fix up docs.
Diffstat (limited to 'website/api.html')
-rw-r--r--website/api.html58
1 files changed, 49 insertions, 9 deletions
diff --git a/website/api.html b/website/api.html
index 3b3bcdbaf..7b8236962 100644
--- a/website/api.html
+++ b/website/api.html
@@ -47,7 +47,11 @@
</li>
</ol>
</li>
- <li><a href="#modules">Modules</a></li>
+ <li><a href="#modules">Modules</a>
+ <ol>
+ <li><a href="#onload">onLoad</a></li>
+ <li><a href="#onexit">onExit</a></li>
+ </ol>
</ol>
</div>
@@ -104,6 +108,15 @@
<dt><code>node.exit(code)</code></dt>
<dd>Immediately ends the process with the specified code.</dd>
+
+ <dt><code>ARGV</code></dt>
+ <dd>An array containing the command line arguments.</dd>
+
+ <dt><code>stdout</code>,
+ <code>stderr</code>, and
+ <code>stdin</code>
+ </dt>
+ <dd>Objects of type <code>node.fs.File</code>. (See below)</dd>
</dl>
<h2 id="timers">Timers</h2>
@@ -976,24 +989,34 @@ exports.assertEquals = function (expected, found, name_opt) {
to the file calling <code>include()</code>.
</p>
+ <p>Alternatively one can use HTTP URLs to load modules. For example,
+
+ <pre>include("http://tinyclouds.org/node/mjsunit.js");</pre>
+
<p>
<code>include()</code> inserts the exported objects from the
specified module into the global namespace.
</p>
+ <h3 id="onload"><code>onLoad</code></h3>
+
<p>
- Because file loading does not happen instantaneously, and
- because Node has a policy of never blocking, the callback
- <code>onLoad</code> can be set and will notify the user when the
+ Because module loading does not happen instantaneously, and
+ because Node has a policy of never blocking, a callback
+ <code>onLoad</code> can be set that will notify the user when the
included modules are loaded. Each file/module can have an
<code>onLoad</code> callback.
</p>
<p>
To export an object, add to the special <code>exports</code>
- object. The functions <code>fail</code> and
+ object.
+ The functions <code>fail</code> and
<code>deepEquals</code> are not exported and remain private to
the module.
+
+ Alternatively, one can use <code>this</code> instead of
+ <code>exports</code>.
</p>
<p>
@@ -1010,20 +1033,37 @@ function onLoad () {
<p>
<code>include()</code> and <code>require()</code> cannot be
- used after <code>onLoad()</code> is called. So put them at the
- beginning of your file.
+ used after <code>onLoad()</code> is called.
</p>
+ <h3 id="onexit"><code>onExit</code></h3>
+
<p>
- Additionally when <code>node.exit()</code> is called or when
- a program exits naturally, the function <code>onExit()</code> will be
+ When the program exits a callback <code>onExit()</code> will be
called for each module (children first).
+ </p>
+
+ <p>
The <code>onExit()</code> callback cannot perform I/O as the process is
going to forcably exit in several microseconds, however it is a good
hook to perform some constant time checks of the module's state.
It's useful for unit tests.
</p>
+<pre>
+include("mjsunit.js");
+
+var timer_executed = false;
+
+setTimeout(function () {
+ timer_executed = true
+}, 1000);
+
+function onExit () {
+ assertTrue(timer_executed);
+}
+</pre>
+
<p>
Just to reiterate: <code>onExit()</code>, is not the place to close
files or shutdown servers. The process will exit before they get