プロジェクトの作成
チャットアプリのためのプロジェクトを作成します。作成はsailsコマンドのnewオプションを利用します。
$ sails new simpleChat --linker
実行すると以下のようなメッセージが表示され、プロジェクトが生成されます。
debug: Building new Sails.js app in ./simpleChat... info: Using asset linker... info: New app created!
newオプションは作成したいアプリ名を渡して実行します。ここではさらにnewオプションのオプションとしてlinkerを指定しています。linkerオプションはSailsで用意されているアセットのマネージメント機能を利用する場合に必要なディレクトリ構成を準備してくれます。アセットについては、後ほどまた説明することにします。
出来上がったプロジェクトのひな形は、以下のような構成になります。
simpleCath |___Gruntfile.js |___README.md |___api/ ・・・・アプリ作成時に軸となる各実装の配置ディレクトリ | |___adapters/ ・・・・DB接続やTwitterのような外部サービスへのアダプターを配置 | |___controllers/ | |___models/ | |___policies/ ・・・・configディレクトリ以下のACLの設定から参照される処理の実装を配置 | |___services/ ・・・・アプリ内で共通で利用するような処理の実装を配置 | |___app.js | |___assets/ ・・・・画像ファイルなどの静的ファイルの配置ディレクトリ | |___favicon.ico | |___images/ | |___linker/ ・・・・viewにリンクをインジェクションするための各ファイルの配置ディレクトリでlinkerオプションにより作成される | | |___js/ | | |___styels/ | | |___templates/ | |___robots.txt | |___config ・・・・アプリ全体の動作に関わる設定を行う各ファイルを配置するディレクトリ | |___400.js | |___403.js | |___404.js | |___500.js | |___adapters.js | |___bootstrap.js | |___controllers.js | | | ・ | ・ | ・ |___node_modules/ ・・・・アプリで利用するmoduleの配置ディレクトリで、デフォルトでは以下の4つが組み込まれている | |___ejs/ | |___grunt/ | |___optimist/ | |___sails-disk/ | |___package.json | |___views/ ・・・・viewファイルの配置場所 |___403.js |___404.js |___500.js |___home/ | |___index.ejs | |___layout.ejs
アプリ実装中に主に扱うことになるのは、apiディレクトリ以下の各要素とviews以下のビューファイルです。すでにMVCフレームワークを利用したアプリ開発を経験されている方にはおなじみのスタイルでしょう。servicesやpoliciesといった辺りは若干見慣れないかもしれません。servicesはアプリ内で共通して利用する処理などを実装したファイルを配置します。policiesは各コントローラーやそのアクションへのアクセス制御に関する処理を実装したファイルを配置します。
views以下のディレクトリは、デフォルトの設定では、ディレクトリ名とコントローラー名とを対応させて作成することで自動的にパスが設定されます。各コントローラーのアクションから呼び出すビューは、それぞれのディレクトリに配置することになります。ビューのテンプレートエンジンはデフォルトではejsを利用しますが、jadeを選択することも可能です。また、すべてを試してはいませんが、expressで利用可能なテンプレートエンジンであればhamlなど他のエンジンも使うことができるはずです。
assetsとconfig以下については、必要に応じてファイルの追加や設定の変更を行うことになります。assetsには先程プロジェクト作成時に指定したlinkerオプションによってlinkerディレクトリとlinkerディレクトリ以下のディレクトリ構成が追加で生成されています。
この何も実装を追加していない状態で、いったんsailsコマンドを使ってアプリを起動してみましょう。起動はliftオプションで行います。プロジェクトのディレクトリに移動し、以下を実行します。
$ sails lift
sails liftを実行すると、上記イメージに示したコンソール画面のようにアプリが起動します。起動後にブラウザからアクセスして、正しくプロジェクトが作成され、アプリが起動できているか確かめてみましょう。デフォルトのポートは1337です。この状態でブラウザからlocalhost:1337にアクセスして、以下のイメージのようになれば正常に起動しています。
起動が確認できたら、機能を作りこんでいきます。


