記録として残しておきたいブログ

主にプログラミングについて書きます。現在は http://tmg0525.hatenadiary.jp/ に書いています。

Node.js WEBサーバーの基礎コード(?)

var http = require('http');         // httpをロード

var server = http.createServer();   // serverオブジェクトの作成
server.on('request', doRequest);    // 'request'イベントにdoRequest関数を関連付ける
server.listen(8888);                // ポート番号8888で待ち受け開始
console.log('Server running!');

// リクエストの処理
function doRequest(req, res) {
    // ヘッダ情報
    res.writeHead(200, {'Content-Type': 'text/plain'});

    // ボディ部分
    res.write('Hello World\n');

    // コンテンツ出力の完了
    res.end();
}


require(moduleName)
モジュールを読み込んで利用可能にする
引数

  • moduleName <String>
    • 読み込みたいモジュール名


http.createServer([requestListener])
http.Serverオブジェクトを作成し、返す。
Node.jsの「サーバー」の部分


emitter.on(eventName, listener)
イベントハンドラを登録する
イベントハンドラに与えられる引数はイベントに応じて異なる。
引数

  • eventName <String>
    • イベント名
  • listener <Function>

'request'イベントにdoRequest()関数を関連付けている。
クライアントからのリクエストの処理を行う

イベントハンドラの説明=>https://mag.osdn.jp/13/03/18/0939236/3


server.listen([port][, hostname][, backlog][, callback])
サーバーの待ち受けを開始
引数

  • port <Number>
    • ポート番号

listen()関数はポート番号を指定する と覚えておく。

doRequest()内の処理

'request'イベントの場合は、イベントハンドラには2つの引数が渡される。
doReqest(request, response)

  • request
    • クライアントからのリクエストに関する機能
  • response
    • サーバーからクライアントへ送るレスポンスに関する機能

この2つの引数を使って処理していく。


response.writeHead(statusCode[, statusMessage][, headers])
ヘッダー情報をレスポンスに書き出し
response.end()が呼び出される前に呼び出すこと。
引数

今回は、「このコンテンツは標準出力ですよ」ということがクライアントに送られる。


response.write(chunk[, encoding][, callback])
ボディとなる部分のコンテンツの書き出し
何回でも.write()は呼び出せる


response.end([data][, encoding][, callback])
コンテンツの出力の完了
レスポンス処理の終わり


「writeHead」 「write」 「end」 の3つがあればクライアントへ返答できる


参考サイト
Node.jsのスクリプトの基本を覚えよう(1/5):ビギナーのための Node.jsプログラミング入門
Node.jsのスクリプトの基本を覚えよう(2/5):ビギナーのための Node.jsプログラミング入門