Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Node.jsのWebフレームワーク「Sails」を使ってpub/subアプリを作ってみる

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第11回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/04/01 14:00

 本連載ではTIS株式会社が提供している技術ブログ「Tech-Sketch」から「コレは!」というテーマをピックアップし、加筆修正して皆様にお届けしています。今回はNode.js上で利用できるMVCフレームワークであるSailsについて取り上げたいと思います。

目次

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コマンドと同じですね。では実際にひな形を作っていきます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 佐伯 純(TIS株式会社)(サエキ ジュン)

    TIS株式会社 コーポレート本部 戦略技術センター所属 入社後、アジャイルで商品先物取引のシステム開発という当時としてはかなり尖ったチームに放り込まれ、以来SIerとは思えない辺境を歩き続けている。現在の部門に異動してからはRubyOnRailsを利用した社内向けサービスの開発に参加後、Andro...

バックナンバー

連載:近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

もっと読む

おすすめ記事

All contents copyright © 2006-2016 Shoeisha Co., Ltd. All rights reserved. ver.1.5