2012年11月13日火曜日

いまさらながらnode.jsをつかってみた

いまさら

nodeさわってみたいなーと思いつつ、クライアントサイドアプリつくるのが手一杯だったのでずっと後回しにしてきた。さすがにサーバサイドも作りこまないと作れる範囲に限界がみえてきたのでなにかしらRESTで動くサーバーアプリを作ろうと思い立った。

目指すのはnode.js + mongoDBでRESTアプリケーション。これをクライアントサイドアプリで利用してJSONをコンテンツの中心としたいまどきサービスをつくってみたい。できればOAuthとかもできるといいなと思ったり。

nodeインストール(Win7)

参考にしたのはgihyoさんの記事


書いてある通りにやればいいだけなのでここは割愛。
Nodeの公式HPからインストーラを落として終了。簡単。
gihyoさんの記事通りにサンプルのexample.jsを作って

node example.js

動いた。
Program Filesに入るのでPathも自動で通っている。
なんとなく開発環境つくってる感じがしないんだが、こんなんでいいのか?

expressをインストール

example.jsだとアプリケーションとは程遠いのでなにかしらフレームワークが必要。
ってことで有名どころなのでexpressを入れてみる。
インストールはnpm。Nodeのrpmだそうだ。
npmはnode本体と一緒にインストーラーからインストールされているので、
npmコマンドはそのまま通る。

npm --version

で一応確認。
1.1.65
って返ってきました。

んじゃexpressをインストール。

npm install -g express

GETやらなんやらがでてきて、見守る。expressのインストール終了。
-gはグローバルインストール。っていわれてもなんだかよくわからないが。
nodeのインストールディレクトリ配下にexpressをインストールするときは-gつけときゃいいのかな?
ほかのアプリがあって使いたい場合グローバルインストールしておく。今回はFWなのでとりあえずグローバルインストールをペシペシ。

expressはnodeアプリケーションのひな形をつくってくれるツールと考えればいいのかね。
HTML5でいうところのInitializrのカスタムビルドがツールになってnodeアプリを吐き出す、という印象。


expressインストールが終わったら適当なディレクトリにcdして、

express -e firstApp


これでfirstAppという名のEJSテンプレート(-e)を持ったnodeアプリの枠ができると。
さらに依存するモジュールをfirstAppに置くためにfirstAppに移動して

node install -d 

-dがなんなのかよくわからんが。

ほいでexpressのテンプレートから自動生成されたアプリが完成。
ふーん。簡単すぎてなにやったかよくわからん。

node app.js

で無事にexpressアプリが起動する。



調べにゃいかん

とりあえずexpressでアプリをつくっていくとして、よくわからずにできてしまったことを整理。意味を理解する課題リスト。

expressってなにもの?
とりあえず有名なので入れてみたけど、いまいちよさを実感してない。
最低限必要な構成はそろってるみたいだけど、なにができるの、できないの?

EJS?
EJSとかjadeとかテンプレートにはいろいろあるらしいけど、そもそもこれって何?
ejsはパッとみだとunderscore.jsの_.template()に近いようにみえる。
むしろ同じと考えるのが妥当なのかしら。

npmの使い方
依存関係を簡単に解決してくれるのはわかったので使い方を覚えないと。ツールはつかえてなんぼだ。






とりあえず今回はここまでメモ書き。