一度触ってみたかったので、node.jsを入れます。
公式ページ
http://nodejs.org/
日本語ページ
http://nodejs.jp/nodejs.org_ja/
日本ユーザズグループ
http://nodejs.jp/
node.jsとは何者か?ていうのが、正直よくわかってないので素直にインストーラからインストールしました。
インストールすると、アプリ画面にアイコンがいくつかできます。 
必要なのはNode.js command promptです。スタート画面かタスクバーにピン止めしておきましょう。
Node.js command promptは、node.exe等の関連ファイルにPathが通ったコマンドプロンプトです。
Node.jsのプログラムはテキストエディタでJavaScriptで書きます。適当に作業フォルダ作って、そこにファイル作成しましょう。
とりあえずのHelloWorld。
var sys = require('sys');
var http = require('http');
var server = http.createServer(
function (request,response){
response.writeHead(200, {'Content-Type' : 'text/plain'});
response.write('Hello,world!\n');
response.end();
}
).listen(80);
sys.log('Server is running!');
これを「D:\nodejsWork\helloWorld.js」で保存します。
接続ポートは標準http(80)指定してますが、Apacheなど起動していた場合、80ポートはすでに使われているので、別ポートにしましょう。
「Node.js command prompt」を起動して、該当のフォルダへ移動してから、
「node helloWorld.js」で起動します。
ブラウザから繋いでみる。
繋がりました。停止するにはコマンドプロンプトで「Ctrl + C」です。
せっかくなのでMySQLに繋げてみたいと思います。
node-mysqlをインストール。node.jsのライブラリはnpmコマンドでインストールします。
「Node.js command prompt」で「npm install mysql」です。
カレントフォルダの下の「node_modules」にインストールされるみたいです。今回の場合は「D:\nodejsWork\node_modules」ですね。
プロジェクトごとに、必要なモジュールを入れる感じなのかな?よく使うものはnode.js共通モジュールとしてどこかに置いておけそうな気もしますが、どうなんでしょ。
DB接続とデータ取得をプログラムに追加。
var sys = require('sys');
var http = require('http');
var mysql = require('mysql');
var server = http.createServer(
function (request,response){
//データベースへ接続
var connection = mysql.createConnection({
host: 'localhost',
database: 'personal',
user: 'root',
password: 'password'
});
response.writeHead(200, {'Content-Type' : 'text/html'});
response.write('<html>');
response.write('<head><title>Hello,Pokemon!</title></head>');
response.write('<body>');
var query = connection.query('SELECT name,voice FROM pokemon ORDER BY name');
query
//エラーの場合ここが呼び出される。
.on('error', function(err) {
console.log('Error!: ', err );
response.write('Error!\n');
})
//ここが1レコードずつ呼び出される。
.on('result', function(row) {
response.write('<p>');
response.write('「こんにちは、' + row.name + '!」');
response.write('「' + row.voice + '!」');
response.write('</p>');
console.log('write Record Data');
})
//全部読み終わったらここが呼び出される。
.on('end', function() {
response.write('</body>');
response.write('</html>');
console.log('response End');
response.end();
connection.end();
});
}
).listen(80);
sys.log('Server is running!');
先日のMySQLを起動して、接続。
うまく出ました。ちなみに ‘error’ が発生した場合も ‘end’ は呼ばれてました。
これだと毎回DB接続切断してるのが嫌なのでコネクションプール使いたいんだけど、使えるのかな?mysql.createPoolてのがあるようなので、また見てみます。
EJSテンプレートエンジンやExpressフレームワークも試してみたいですね。
今日はここまで!



