Sailsとは
Sailsは米国オースティンにあるBalderdash社のMike McNeilさんを中心として作成されているMVCフレームワークです。スタイルとしてはRailsに近い形を取りつつ、最近のWebアプリ開発に向けたいくつかの特徴を持っています。
主な特徴としては
- Web APIを簡単に作成し、公開できる
- リアルタイムWebなアプリケーションが簡単に作成できる
- Single Page SiteやMobileなどの多様なフロントエンドに対応できる
といったようなものが挙げられます。
Web APIについてはJSONベースのRESTfulなAPIが簡単に作れるようになっています(Sails API blueprints)。特にAPIを作るという意識をせずとも、generatorによって単純なCRUDならすぐにAPIとして公開することができます。ルーティングについても、この手のフレームワークではすでに標準的ですが、RESTを意識したルーティングがデフォルトで採用されています。
リアルタイム対応については、始めからSocket.ioとWebSocketが利用できるようにサポートされており、便利なビルトインのメソッドも用意されています。
Single Page SiteやPhoneGap、Chrome ExtensionのようなWeb APIベースで作成されるサイトやアプリを作成する場合の対応も組み込まれています。用意されているsails buildスクリプトを利用すれば、プロダクション環境へのデプロイ時に必要なフロントエンド構成を出力できます。その他、CORS(Cross Origine Resource Sharing)対応、CSRFなどのセキュリティ対策も組み込みでサポートされています。
また、ミドルウェアにはExpressが採用されていますので、すでにあるExpressで構築されたWebアプリとの互換性も比較的容易に確保することができます。
アプリを作ってみる
それではさっそくSailsを使った簡単なアプリ作成を行っていきます。今回はSailsに用意されているsocket.ioを利用したpub/subを簡単に実装できる仕組みを利用してチャットアプリを作ってみます。socket.ioについては、以前のTech-Sketch出張所の記事で扱っていますので、より詳しく知りたい方はそちらの記事も参考にしてください。
Sailsを使う準備
今回利用するnode.jsとsailsのバージョンは次のとおりです。
- Node.js v0.10.25
- Sails v0.9.9
Node.jsの環境については、直接単独のバージョンをインストールするか、もしくはnodebrewやnvmなどのバージョンマネージメントツールを利用して用意してください。Node.jsの環境が準備できたら、以下のとおりnpmコマンドを実行してSailsをインストールします。
$ npm install -g sails
Sailsのインストールが無事終了したら、sailsコマンドが実行できるようになります。sailsコマンドはアプリのひな形などを作成したり、Sailsアプリを起動する時に利用します。この辺りはRailsのrailsコマンドと同じですね。では実際にひな形を作っていきます。