2010/09/13

Node.jsをさわってみた

今話題!?のNode.jsをさわってみた。

APIの日本語訳がすでにあります。アツいです。

まずインストールですが、今回はMacPortsからインストールしました。バージョンが古かったのですが(現時点での最新はv0.2.1、Portsのはv0.2)、インストール時にNode.js本体の他に依存パッケージが6つ入っていたので、無用なトラブルを避けるためにも初回はこれでよかったかも。


では手始めにAPIの日本語訳からHello Worldを。
var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');


次にHTML形式を返すようにしてみます。
var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/html'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');
Content-Typeをhtmlにすれば、タグが使えるようになります。太字になりました。


ではパラメータを受け取ってみます。
var http = require('http');
var url  = require('url');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/html'});
  
  // リクエストURLを解析したオブジェクトの取得
  var req_str = url.parse(request.url, true);
  
  if (req_str['query']) {
    response.end('Hello ' + req_str['query']['name'] + '\n'); //クエリnameの値にアクセス
  } else {
    response.end('Hello World!\n');
  }
  
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');
パラメータで渡したnameが反映されて表示されてます


サーバーサイドということでまずは以上のようなことをやってみました。
次は、もっとNode.js的に期待されている非同期処理とかにも挑戦していきたいです。


※Node.js向けにnpm(Node Package Manager)というパッケージ管理の仕組みがあって、モジュールの管理ができるそうです。また、便利なモジュールの提供がされてるとか。