読者です 読者をやめる 読者になる 読者になる

node.jsが盛り上がってるっぽいので、現実逃避の手段として利用する

node.jsなんか盛り上がってますね。
東京node学園もあるみたいだし、なんかこれからじわじわ来るのではないかと個人的には思っています。
東京node学園の定員に入りそびれてちょっといじけつつ、色々と情報を探しているけど、まだまだ少ない。というか探し方がうまくないのかな。
普通にググって出てくる情報の大半がインストールしてみて、webサーバ起動テスト、やったHello, Worldがブラウザに表示されたよ、ひゃっほー、みたいなもので、で、実際に何に使えるんだよ、って思う方が大半かなぁと思います。というか、自分がそう。まあそれだけ新しい技術なんだよね、ということで、ここ数週間こそこそと自分で勉強した成果に火を噴かせる時がやってきたのだ、などと勝手に思ってまとめてみました。

多分読んで楽しい対象は、インストールを完了して、よく見かけるサンプルを動かしてみた後、で、どうしよう、ぐらいの人かと。
シングルスレッドで非同期I/Oがどうとか、正直自分もまだ血肉にはなっていないし、Javascriptまともに触ったの今回からなのでcallback関数が実行されるタイミングがよく分からずにぎゃふってなったりしてますが、なんかリアルタイムで動いてたのしー、くらいの勢いで触っています。

インストール

入れば何でもいいかと思ってます。
色々あって迷うので、とりあえずググって新しめの情報を見るとよいのでは。
自分はここ見て、ソースからコンパイルして入れました

npm(Node Package Manager)

パッケージ管理ツール。これないとたぶん楽しいことができません。

node.js本体と同じくここを見ればたぶんインストールできます。自分の環境はUbuntu10.10でした。
なお、パーミッションがよく分かんなくなったら、とりあえずrootでmake, make installすればよいかと。
Ubuntuなら確か大丈夫なはず。

なにはともあれHello, world by node.js

これもよく見かけますよね。割愛
というか、node.jsでサーバサイドJavaScript開発入門(1):サーバサイドJavaScriptの本命「node.js」の基礎知識 (1/3) - @ITからコピペすれば動きます。

さて、そこからどうしよう・・・

とっかかりが・・・
と思う人は、ここにあるコードを動かしてみるといいです。
http://d.hatena.ne.jp/sugyan/20101229/1293595255
http://tech.kayac.com/archive/nodejs.html

同じ方みたいですね。すぎゃーんさんに多謝です。
しかし、これは自分の構築した環境ではなぜか動かない。
かなりはまりましたが、ポイントはここ、

locals: { name: req.param('name') || 'anonymous' }

ここを

{ name: req.param('name') || 'anonymous' }

と、"locals:"を削除することで動きます。
まだ開発が活発に行われているので、バージョン違いとかですかねぇ・・・
で、これ実際に動かすと楽しいですよ。
リアルタイムなやり取りが実現できるなんて、さいこーじゃないですか。

で、お前は今どうしているんだ

実は、このチャットっぽいアプリにヒントを得て、タスクの共有アプリを作っています。
イメージは研究室のドアによくある在室ボード(って名前だっけ)です。
今やってる作業を案件に紐づけてリアルタイムで可視化する、っていうのが目的ですね。
ついでに稼働工数も取れたらいいということで、DBも用意してmongodbを利用しようとしてます。

なので、node.js+mongodbというなんか最近っぽい感じの構成になっています。
現在絶賛開発中。

動きが早いので、これからも情報をちょくちょく情報を仕入れてまとめていきたいところです。