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

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.0.0.1:27017]
    at [object Object].<anonymous> (/Users/cotapon/node/sample/node_modules/mongodb/lib/mongodb/connection/server.js:383:73)
    at [object Object].emit (events.js:88:20)
    at [object Object].<anonymous> (/Users/cotapon/node/sample/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:93:15)
    at [object Object].emit (events.js:70:17)
    at Socket.<anonymous> (/Users/cotapon/node/sample/node_modules/mongodb/lib/mongodb/connection/connection.js:385:10)
    at Socket.emit (events.js:67:17)
    at Array.0 (net.js:301:14)
    at EventEmitter._tickCallback (node.js:190:38)

なるほどMongoDBがいるみたいですね。既に入ってる方は無事に起動したと思います。僕はMongoDBは入ってないのでインストールします。

MongoDBをインストールする手順

黒い画面は苦手なので先人の知恵を拝借させていただきました。

参考サイト

Mac OS X で MongoDB を動かす
http://d.hatena.ne.jp/babie/20100601/1275420266

しかし、途中の起動のところで下記のエラーが出ました。

$ /opt/local/bin/mongod --dbpath /var/lib/mongodb --logpath /var/log/mongodb.log         [/opt/local/var/db/mongodb]
all output going to: /var/log/mongodb.log
can't open [/var/log/mongodb.log] for log file: errno:13 Permission denied
Sun Jul  1 20:04:18 dbexit: 
Sun Jul  1 20:04:18 shutdown: going to close listening sockets...
Sun Jul  1 20:04:18 shutdown: going to flush diaglog...
Sun Jul  1 20:04:18 shutdown: going to close sockets...
Sun Jul  1 20:04:18 shutdown: waiting for fs preallocator...
Sun Jul  1 20:04:18 shutdown: lock for final commit...
Sun Jul  1 20:04:18 shutdown: final commit...
Sun Jul  1 20:04:18 shutdown: closing all files...
Sun Jul  1 20:04:18 closeAllFiles() finished
Sun Jul  1 20:04:18 dbexit: really exiting now

「errno:13 Permission denied」おそらく、アクセス権限がない。というアラートなんでしょうね。アクセス権を変えるchownやchmodを使ってみたり、MacOSのシステム環境設定でmongodさんユーザーを管理者で追加してみたり、色々試してみたんですが上手く行かず・・・。そこでもう一度ググり直した結果、下記の先人の知恵を発見!

おもむろに mac に mongodb をインストールする
http://d.hatena.ne.jp/hidesuke/20120109/1326095198

ここには、「mongodbを起動するときに –dpath オプションで任意の場所を指定できるけど、初心者は色気を出さないほうがいいんじゃないかな。」まさかの色気!笑 初心者なんで色気は出しません!ということでまとめると下記の手順です。

## 1.brewパッケージマネージャーをアップデートします。
$ brew update

## 2.MongoDBをインストール
$ brew install mongodb

## 3.MongoDB使うディレクトリを作成
##  (ひょっとしたらできているかもしれません。)
$ sudo mkdir -p /data/db/

## 4.アクセス権限の変更、自分にしておく
$ sudo chown `id -u` /data/db

## 5.MongoDB起動。
$ mongod

## 6.シェルでアクセスするには、ターミナルの別タブを開いて
$ mongo

## 7.動いてるか確認
> new Date();
ISODate("2012-07-01T11:16:13.670Z")

さすが噂のMongoDB、JavaScriptが認識しました。さて、Tower.jsを動かしてみるだけで道のりが遠かった・・・。では、Tower.jsを起動してみます。

$ node server.js
info  - socket.io started
[Sun, 01 Jul 2012 11:23:30 GMT] INFO Tower development server listening on port 3000

http://localhost:3000にアクセスして、

無事に起動しました!が、名前が変わってるはずの場所がusernameのままで、クリックしても、「No path matches /example@example.com」と文字が出るだけ・・・。うーん、、何があかんねやろ・・・。何方様か教えて頂けませんでしょうか(T-T) まぁでも一応Tower.jsというのは動きましたので、また解決策が見つかれば報告します。

【Node.js】MacにTower.jsとMongoDBをインストールしてみた
Pocket

Tagged on:         

One thought on “【Node.js】MacにTower.jsとMongoDBをインストールしてみた

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です