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()が呼び出される前に呼び出すこと。
引数
- statusCode
- 3桁のHTTPステータスコード
- headers
- レスポンスヘッダー情報の連想配列
今回は、「このコンテンツは標準出力ですよ」ということがクライアントに送られる。
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プログラミング入門