Express(node.js)+Socket.io+MongoDBでつくったwebアプリをHerokuにデプロイするまで
Express(node.js)+Socket.io+MongoDBでつくったアプリをHerokuにデプロイしました。node.js+npm+Expressはインストールされている前提です。
Expressでwebアプリのひな形を作成
以下のコマンドでひな形を作成します。
$ express application-name $ cd application-name && npm install
この段階で
$ node app
とするとサーバーが立ち上がります。ブラウザでhttp://localhost:3000にアクセスすると"Welcome to Express"と描かれたページが表示されます。
Socket.ioとmongooseをインストール
application-nameディレクトリで以下のコマンドを実行し、Socket.ioとmongooseをインストールします。
$ npm install socket.io $ npm install mongoose
mongooseはMongoDB のオブジェクトモデリングツールです。Node.js上でMongoDBを簡単に取り扱うことができます。
package.jsonファイルを編集
モジュールのパッケージ管理をするpackage.jsonファイルを編集します。
デフォルトでは書かれていないmongooseとSocket.ioに関して追記します。
socket.ioとmongooseのバージョンは/node_modules/の中のそれぞれのフォルダのpackage.jsonの"version"に書かれています。
{ "name": "application-name" , "version": "0.0.1" , "private": true , "dependencies": { "express": "2.5.11" , "jade": "*" , "mongoose": "1.3.5" , "socket.io": "0.8.7" } }
デプロイする準備
.gitignoreファイルを作る
node_modulesにあるモジュールは、Herokuにデプロイする時にpackage.jsonから自動にインストールされます。なので、node_modulesフォルダはgitから無視するように以下コマンドで.gitignoreファイルを作成します。
$ echo "node_modules" > .gitignore
Procfileを作成
Herokuでのプロセス起動に関するProcfileファイルを以下のように作成します。
$ echo web: node app.js > Procfile
Herokuをアップデート
以下コマンドでHerokuを最新の状態にします。
$ gem update heroku $ gem list heroku
herokuがインストールされていない場合は、Heroku Toolbeltからインストールします。
Herokuにデプロイ
以下コマンドで、gitの管理下にファイルを置き、herokuにpushします。
$ git init $ git add . $ git commit -m "first commit" $ heroku create application-name --stack cedar $ heroku addons:add mongohq:free $ git push heroku master
heroku create ~ でherokuアプリケーションを作成しています。
heroku addons: ~ でMongoDBのホスティングサービスのMongoHQアドオンを追加しています。
以下コマンドで、herokuのプロセスの設定をします。
$ heroku ps:scale web=1 $ heroku config:set NODE_ENV=production
以上でHerokuにExpress(node.js)+Socket.io+MongoDBでつくったwebアプリをデプロイできました。