Tower.jsはnode.jsで使えるモジュールがいっぱい入ってるパッケージです。例えば、node.jsのsocket.ioモジュールでチャットを作ります。CoffeeScriptが使いたいのでモジュールをインストールします。あとそれからそれから、、、というのがだいたい入ってます。
Tower.js
http://towerjs.org/
Tower.js models
http://towerjs.org/models
僕はこんなに使いこなせるかわかりませんが、とりあえず入れてみて動かしてみたいと思います。参考にさせていただいたのは下記のサイト。
さらばExpressよ!Tower.jsを試すの巻
http://codedehitokoto.blogspot.jp/2012/03/expresstowerjs.html[](http://codedehitokoto.blogspot.jp/2012/03/expresstowerjs.html)
Tower.jsはnpmにはいっているのでインストールは簡単です。
Tower.jsインストール手順 // 1.-gオプションを付けてnpmからTower.jsをインストール $ npm install -g tower // 2.$ tower new [フォルダー名] $ tower new sample // 3.sampleフォルダーに移動 $ cd sample // 4.インストールします。 $ npm install // 5.ターミナルを別タブで開いてMongoDBを起動 $ mongod // 6.ターミナルのタブを最初に戻して起動します。 $ node server.js さて、これで動くはずみたいですが、僕のはこんなアラートが出ました。
[Sun, 01 Jul 2012 11:20:01 GMT] INFO Tower development server listening on port 3000 [ERROR] Error Error: failed to connect to [127.
node.jsは今後デファクトスタンダード化するんかわかりませんが、面白いのでちょいちょい勉強しています。まだバージョンが1に満たしていないので、node.jsとmoduleのバージョンで使い方が色々違ったりしています。先人の知恵がたくさんあり、とてもありがたいことなんですが、情報が古かったりそのまま使えなかったりしたもので、自分で解決できたものをメモ代わりに書いていきたいと思います。
sysからutilに変更 該当のファイルを「example.js」というのがあったと例えて話を進めます。サーバーを起動してみたら下記のエラーが出ました。
$ node example.js The "sys" module is now called "util". It should have a similar interface. 「The “sys” module is now called “util”. It should have a similar interface.」ここがエラーの文字ですね。sysモジュールは、今はutilというモジュールを使ってます。って書いてる雰囲気ですw まずはnode.jsのバージョンを調べてみましょう。
$ node -v \[/ps\] これでエンターを押すと、インストールされているnode.jsのバージョンが表示されます。ちなみに僕はv0.6.18と表示しました。
$ node -v v0.6.18 なんでsysが使えないと出たかというと、node.js v0.3.x以降は、sysモジュールからutilモジュールに変更になったみたい?というのが理由です。なので、サンプルを公開してくれているサイトに、例えば下記のようなScriptが書いてあったら、utilに変更するとうごくかもしれません。
//sysモジュールを要求するスクリプト var sys = require('sys'); var変数名は、うーん、、とりあえず動くのを試すだけであればこのままでもいいかも。。^^;
//sysをutilに変更 var sys = require('util'); こうですね。これでおそらく動くと思います。
$ node example.js サーバーを起動してみましょう。どうでしょうか。動きましたか?
utilモジュール
http://nodejs.jp/nodejs.org_ja/docs/v0.4/api/util.html
The “sys” module is now called “util”.
プログラマーさんにとっては、JavaScriptという言語の書き方は気持ち悪いみたいです。僕は難しいことはよくわかりませんが、CoffeeScriptというのができるくらい、慣れないものなんでしょうね。CoffeeScriptも、Haml、Sass同様にRuby on Railsとの親和性が高い記述ができるFrameWorkです。僕は生のJavaScriptかjQueryのほうがいいんですが、こんなんいっぱい覚えられへんわ・・・。
慣れれば早いかもしれませんが、まだ普通に書いた方が早くて練習用にjs2coffeeが便利だと思います。CoffeeScriptの公式サイトにも、CoffeeScriptからJavaScriptに正しく書かれているかの変換できる場所がありますが、このjs2coffeeは逆のJavaScriptからCoffeScriptへ変換ができます。jQueryみたいな括弧の中に関数の入れ子状態な記述では、CoffeeScriptでどう書くんやろう・・・。というのがなくなって勉強にも便利かもしれませんね。
http://js2coffee.org/
Sassは「さーす」と読むそうです。これもHamlと同じように、Ruby on Railsに親和性の高い、StyleSheet用のFrameWorkです。これもただ今勉強中。。。
今回のcss2sassは、前回のHtml2Hamlと同じように、CSSからSassへ変換、その逆のSassからCSSに変換できるウェブツールです。これも何かと便利そうなのでメモしておきます。
Ruby on Railsとの親和性が高いと言われているHaml。まだまだ勉強中ですが、書いた記述があってるのかあってないのか、練習する環境を用意したりそれ自体を調べないといけなかったり、そんな敷居が高くなってしまったら元もこうもないので、このHtml2Hamlでさくっとチェックしてみてはどうでしょうか。
さくっとチェックする以外にも、FacebookやTwitterなどのソーシャルボタンのタグを、サッとHamlに変換できて、間違えも少なく、時短にもなり便利だと思います。
http://html2haml.heroku.com/
Jade「ジェイド」っていうみたいです。node.js用のフレームワーク、expressにも使われているテンプレートエンジンです。にわか知識で知った風に書くと怒られますので、説明はこの程度で^^;
Ruby on RailsのViewを書きやすくしたいってことでHamlというテンプレートエンジンがありますが、コンセプトは一緒なんでしょうか。使ってるうちに色々見えてくるかもしれませんので、またレポートしたいと思います。
とはいえ、慣れるまで正しい書き方、構文が分からなければ使いもんにならないので、HTML ⇔ Jade 相互変換ができるジェネレータサイトを見つけましたのでメモします。
Html2Jade http://html2jade.herokuapp.com
Jade - Template Engine http://jade-lang.com/ https://github.com/visionmedia/jade
[INFO] Restarting [ERROR] Error Error: Cannot find module 'socket.io' node.jsを実行した時に、socket.ioがうまく繋がらなかった時のエラー。いろいろ試してsocket.ioが繋がった時のメモを残します。
検証環境 MacOS 10.6.8
ターミナル.app
node v0.6.18
npm v1.1.24
express v2.5.10
socket.io v0.8.7
現時点でsocket.ioの最新バージョンはv0.9.xでしたが、0.8.7にすればとりあえず動きました。
$ npm install socket.io@0.8.7 app.js編集 app.js 1
2
var app = module.exports = express.createServer(); var io = require('socket.io').listen(app);//この行を追加 node app.jsで起動してみる $ node app.js info - socket.