node.jsを触る。ちょっとだけ。

node.js or RingoJS
どちら使うか迷いますが、
とりあえず両方さわってみようかと。
ちょっと触ったぐらいじゃ、雰囲気ぐらいしか分からないと思いますが、
素振りしないとね。素振り。

node.jsから。
http://nodejs.org/#download
からダウンロード。すいません。Windowsなので、Windowsダウンロードです。
今日時点では、v0.6.11です。(バージョンアップが激しいらしい)
何事も無く、インストール終了。
コマンドプロンプトでやってみる。

C:\Users\nosa>node
> console.log("Hello World");
Hello World
undefined

undefined・・・?
ファイルでやってみる。
test.js

function hello(name){
   console.log("Hello " + name);
}

hello('node.js');

実行

C:\node.js>node test.js
Hello node.js

ふむ。
http://dl.dropbox.com/u/219436/node.js/handson/build/html/webapp/http_server.html
ここらへんやってみる。

どうやら、Webアプリケーションを作る場合は、expressを使ったほうが楽そうだ。
というかデフォルトみたいな感じですね。
npmを使ってインストールするらしい。以前のバージョンでは、Windowsにはnpmが無かったようだが、今はあるっぽい。
インストール時に、-gオプションを付けてる例が多い。
http://d.hatena.ne.jp/replication/20110607/1307458180
http://hidari-lab.net/wp/posts/2011/09/110/
グローバルインストールだそうだ。
ejsのインストールも忘れずに。

C:\node.js>npm install express ejs -g

何やらインストールされる。
っが、インストールされる場所が気に入らない。
C:\Users\nosa\AppData\Roaming\npm\node_modules
いや、グローバルインストールだからここになるのか。このまま進むとします。

テンプレートエンジンから、アプリケーションのひな形を作る。らしい。
テンプレートは、ejsとjadeってのがある。
デフォルトは、jadeだけど、ejsの方が使われてるっぽい。
どうやら、ejsのほうがHTML形式に近くて見やすいようです。
tオプションで、テンプレートエンジン指定です。

C:\node.js>express -t ejs test
   create : test
   create : test/package.json
   create : test/app.js
   create : test/public
   create : test/public/javascripts
   create : test/public/images
   create : test/public/stylesheets
   create : test/public/stylesheets/style.css
   create : test/routes
   create : test/routes/index.js
   create : test/views
   create : test/views/layout.ejs
   create : test/views/index.ejs

   dont forget to install dependencies:
   $ cd test && npm install

実行する。

C:\node.js>node test\app.js

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'express'

expressが見つかんないよと。パスを通す必要ありのようです。
パスは、色々ありそうですね。特にWindowsの場合は。
http://ryooo321.blogspot.com/2011/10/nodeexe.html
このエントリのように、C:\などのドライブに対応しないといけないですね。
モジュールのパスは、NODE_PATHに通せばよさそう。
とりあえず、画面でた。
socket.ioとか使ったチャットアプリのサンプルは、たくさんあるので、
とりあえずここまで。
やっぱ、サーバーサイドJSの本命は、Nodeなのかしら。