nodesterを使ってみた
nodesterを使った日本語の記事が少なかったのと、備忘録として記事を書いてみます。
nodesterはnode.jsを使うことができるPaaS(Platform as a Service)です。
node.jsを使うことができるPaaSは他にもDotCloudやjoyentなどがあります。
DotCloudではSocket.ioが使えなかったり、joyentは現在はいっぱいで、サブドメインがもらえないかもしれません。
というわけでnodesterを使うことにしました。
npmとgitを使いますが、インストールされていることを前提で書いています。
gitのインストールとnode,npmのインストールについては過去に書いたものがありますので、次の記事を参照してください。
gitをソースからインストール メモ - mintsu’s プログラミング日誌
node.js 導入してみた - mintsu’s プログラミング日誌
nodesterに登録
まずnodesterのWebサイトに行きます。
http://nodester.com/
「Request Registration Coupon」というところをクリックし、
メールアドレスを入力しそのメールアドレスにクーポンが届きます。
メールが届くまでに2,3日かかると思います。
クーポンが届いたら
http://nodester.com/help.html
こちらの「Registering with a Coupon Code」の「OR CHEAT」と書いてあるところをクリッククーポン、ユーザーネーム、パスワード、メールアドレス、公開鍵を入力します。
これで登録は完了です
アプリケーションを作るための準備
次に実際にnodesterでアプリケーションを作れるようにします
$npm install nodester-cli $nodester user setup <登録したユーザーネーム> <登録したパスワード> $nodester user setkey
アプリケーションを作る
実際にアプリケーションを作ってみます。
$nodester app create <appname> $nodester app init <appname>
この状態でhttp://
アプリケーションを更新
アプリケーションの更新にはgitのコマンドを使います。
$cd ./<appname>
server.jsというファイルがあるのでこのファイルを編集します。
4行目のres.endの引数を適当に変更します
私はとりあえず
res.end('konnichiwa');
としてみました。
そして次のgitコマンドを打ちます
$git commit -am "<コミットメーッセージ>" $git push origin master
これで更新完了です。先程のhttp://
「konnichiwa」と表示されているはずです。
すでに作ってあるアプリをデプロイする
すでに作ってあるアプリのあるフォルダに移動します。
gitでリポジトリをまだ作っていなければ。
$git init $git add . $git commit -am "first commit"
とコマンドを打ちます。
$nodester app info <appname> The "sys" module is now called "util". It should have a similar interface. nodester info Gathering information about: appname nodester info appname on port xxxx running: true (pid: xxxx) nodester info gitrepo: git@nodester.com:/xxxxxx.git nodester info appfile: server.js
nodester info gitrepo: の値をコピーするなりメモするなりしてください。
続いて
$git remote add nodester <先ほどコピしたgitrepoの値> $git push nodester master
これで完了です。
*2012年2月4日変更
ちなみに、nodesterでsocket.ioを使う場合xhr-pollingにしないとうまく動かないようです。
私はsocket.ioを使ったチャットを作ったのですが
var io = require('socket.io').listen(app); io.set('transports', ['xhr-polling']);
とすることでnodesterでうまく動くようになりました。
*2012年2月4日追記
nodesterのAPIコマンドを打ちモジュールをインストールすることでsocket.ioを使ってwebsocket通信できました。
package.jsonがしっかりと記述されていれば次のコマンドで必要なnpmのモジュールがインストールされると思います。
$nodester npm install <appname> $nodester app restart <appname>
追加したいモジュールを
$nodester npm install <appname> <使いするパッケージ名> $nodester app restart <appname>
と書いてもできます。
これでsocket.ioを使ってwebsocket通信をすることができました。
作ってみたチャットはこちら
http://mintsu1.nodester.com/