さくらんぼのlambda日記

lambdaちっくなことからゲーム開発までいろいろ書きます。

2012-02-23

nodejsで遊ぶのに楽しそうなライブラリまとめ!

最近nodejsで遊んでるのですが、nodejs単体だと面倒な事も多いのでライブラリを色々調べてみました。今回はそのまとめです。

よく見るもの

世間でよく使われてそうで、基本的なものを並べてみます。

node-dev
スクリプトが更新されたら、自動的に再起動してくれるライブラリです。
node-inspector
chromeとかをnodejsのデバッガとして利用可能にするライブラリです。
express
世間でよく見るフレームワークです。便利。Webやるなら必須な印象です。
socket.io
websocketで遊ぶならこれです。。
connect
expressも利用しているWebフレームワーク。サーバとか作る機能があるみたいです。

コールバックを何とかする系

nodeはシングルスレッドにもかかわらずマルチスレッドで動作しているかのように見せるため、逐次処理しようとしても想定と違う動きをすることがあります。
これを回避するような書き方は面倒なのでそれを回避するための支援ライブラリ群です。

async
便利。
fab
中身までは見れてません。

CSS生成

CSSをそのまま書くのは面倒です。そこで独自の記法からCSSを自動生成するライブラリです。

less
よく見るけど詳細は見ていません。
stylus
便利機能満載すぎて良い感じです。欠点はCSSの書き方と大分離れてしまう点ですかね。

HTML生成

HTMLをそのまま書くのは面倒です。そこで独自の記法(以下略

jade
インデントとタグ名の組み合わせでHTMLを記述できます。express標準はこれを利用します。
ejs
PHPとかerubyとかみたいな、HTMLの中に一部JavaScriptが使えるようなものです。

デーモン化

nodejsをデーモンとして動作したい場合に利用するライブラリ、ツールです。

forever
デーモン化はもちろん、デーモン管理までできて優秀。

マルチプロセス化

いろいろあるようです。sparkがなんとなく良さそう?

spark
cluster
fugue
multi-node

DB

DBと言えばmongodbをよく聞きます。あとそれを利用するためにmongoose使えばよさそうです。

2012-02-20

node.js + express で遊んでみた

最近はやりのnodeで遊んで見ました。

とりあえず、よく見るexpressを使ってみようかと思います。nodeとnpmはインストールされているとして以下のコマンドでexpressをインストール。ついでにexpressがテンプレートエンジンとして利用するjadeのインストールもここで一緒にしてしまいます。

npm install express
npm install jade # expressの標準の動作に必要なのでこれもインストール。

これで、expressが使えるようになります。

express TestProject

   create : TestProject
   create : TestProject/package.json
   create : TestProject/app.js
   create : TestProject/public
   create : TestProject/public/javascripts
   create : TestProject/public/stylesheets
   create : TestProject/public/stylesheets/style.css
   create : TestProject/views
   create : TestProject/views/layout.jade
   create : TestProject/views/index.jade
   create : TestProject/routes
   create : TestProject/routes/index.js
   create : TestProject/public/images

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

こんな感じにファイルが自動的に作られます。
とりあえず実行してみましょう。

cd TestProject && npm install
node app.js

これでとりあえず実行されます。

http://localhost:3000/にアクセスするとデフォルトのページが表示されるはずです。

せっかくだから、新しいページをひとつくらい追加してみます。

app.jsに以下の内容を追記。

app.get('/mogeta', routes.index2);

次に、routes/index.jsに以下を追記

exports.index2 = function(req, res){
  res.render('mogeta', { title: 'もげた'})
};

最後に、views/mogeta.jadeを新たに作成して追加します。

!!! 5
html(lang="ja")
h1= title
p Welcome to #{title}
p もげた

これで、http://localhost:3000/mogetaにアクセスするとページが見えるはずです。

expressが割りと楽しそうな感じなので、色々調べてみようかと思います。

2012-01-18

nodejs & coffee-script をインストールしてみた

ふとnodenode(http://nodejs.org/)を使いたくなってインストールしてみました。以前インストールしたときは、結構面倒くさかったのですが最新(0.6.7)ではインストーラが存在していて楽チンになってました。

Windowsでもすぐ使えるようにPATHの設定もしてくれるようですね。あとCoffeeScript(http://coffeescript.org/)もWindowsで使えるようになっているようです。

npm install coffee-script

でインストールできました。

ちなみに、npmはユーザのホームディレクトリ(C:¥Users¥ユーザ名とか)にnode_modulesというディレクトリをつくってその下にインストールしていくみたいです。coffeeとcakeはそこの下にインストールされるので適宜PATHを通すと良いみたいです。

CoffeeScriptで小物を作っておけば

  • Windows/Mac/Linuxで動作できるスクリプトとして使える
  • ブラウザ上でも動く

という感じに便利なので覚えてみようかなと思います。

特にブラウザで動くというのは他の言語には類を見ない便利な点なので、Web上で使いそうなものは全部CoffeeScriptで書いておくくらいでも良いかもしれませんね。