出典:Nodeビギナーズブック
 HTTPサーバをNode.jsアプリケーションとして作成する。

基本的なHTTPサーバ

server001.jsを作成
var http = require("http");
function onRequest(request, response) {
  console.log("リクエストを受け取りました");
  response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
  response.write("ハロー ワールド");
  response.end();
}
http.createServer(onRequest).listen(8888);
console.log("サーバー動作開始");
実行
$ node server001.js
実行結果

 Webブラウザでhttp://raspberrypi:8888を開くとコンソールは

$ node server001.js
サーバー動作開始
リクエストを受け取りました
リクエストを受け取りました

「サーバー動作開始」が先に表示され、イベント駆動の非同期サーバサイドJavaScriptでのコールバックがうまく動いていることが分かる。
尚、「リクエストを受け取りました」が2回出ているのはブラウザが/faviconもロードしようとするため。

サーバモジュールの分離

 index002.jsからserver002.jsのサーバモジュールを呼び出すように変更。

server002.jsの作成
var http = require("http");
function start() {
  function onRequest(request, response) {
    console.log("Request received.");
    response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
    response.write("ハロー ワールド");
    response.end();
  }
  http.createServer(onRequest).listen(8888);
  console.log("サーバー動作開始");
}
exports.start = start;
index002.jsの作成
var server = require("./server002");
server.start();
実行
$ node index002.js