やっと、Node.jsの記事を書きます!
早くも1年近く経過している気がしますが、気のせいですr(^ω^*)
Node.jsはHTTPサーバーやHTTPクライアントを実装したhttpモジュールが用意されています。なので、webアプリケーションを利用する際には、このモジュールに含まれているhttp.Serverクラスを使うのが一般的です。
では、早速HTTPサーバを立ててみましょう!!
最初は「Hello World」と表示してみます。おなじみですね(。-_-。 )ノ
1008番ポートを利用してHTTPサーバの待ち受けを開始するには次のように指定します。「//」で書いてある部分はコメントになります。一応どのような処理をしているか書いてみました。
$ vi test.js ~ // HTTPモジュールの呼び出し var http = require('http'); // http.Serverクラスのインスタンスの作成 var server = http.createServer(); server.on('request', function (request, response) { // ステータスコード200でHTTPレスポンスヘッダを出力する response.writeHead(200, {'Content-Type': 'text/plain'}); // Hello Worldと表示し、レスポンスを終了 response.end('Hello World\n'); }); // listenメソッドを実行し、待ち受け開始(1008番ポート) server.listen(1008); // コンソールにログを出力 console.log('Server running at http://www.nightmare-yk.com:1008/'); ~ |
これを以下のように実行してみます。あっ、ちなみにforeverはnode.jsスクリプトをデーモン化するツールです。これは、最後に説明をします(o ̄∀ ̄)ノ
# forever test.js warn: --minUptime not set. Defaulting to: 1000ms warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms Server running at http://www.nightmare-yk.com:1008/ |
ちゃんとコンソールに設定したログが表示されていますね!
ブラウザでは以下のように表示されました。
apache等のWebサーバを上げる必要がなく、簡単ですねヽ( ´ ▽ ` )ノ
■ foreverコマンド
foreverコマンドは、以下のようにインストールができます。
# npm install forever -g npm http GET https://registry.npmjs.org/forever npm http 200 https://registry.npmjs.org/forever : : |
実際に使ってみましょう!
プログラムを永続的に起動する方法は以下です。
# forever start test.js warn: --minUptime not set. Defaulting to: 1000ms warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms info: Forever processing file: |
起動できたか確かめるため、永続的に起動したアプリ一覧を表示します。
# forever list info: Forever processes running data: uid command script forever pid logfile uptime data: [0] cGtT /usr/bin/node test.js 4303 4305 /root/.forever/cGtT.log 0:0:0:57.294 |
起動できていますね☆
起動したプログラムは一覧の0番目になっているので、0を指定してアプリを終了させます。
# forever stop 0 info: Forever stopped process: data: uid command script forever pid logfile uptime [0] cGtT /usr/bin/node test.js 4303 4305 /root/.forever/cGtT.log 0:0:1:50.108 |
どうでしたでしょうか?
次はより実践的な書き方について紹介したいと思います(*^▽^*)ノ