PR

expressで開発したWebアプリをeXcaleで動かす

2013年1月30日(水)
西谷 圭介

はじめに

前回の記事ではeXcale上にアカウントを解説してNode.jsで書いたシンプルなアプリケーションをデプロイしてみました。しかし、実際のWebアプリケーションではURIのパス解析など複雑な実装が必要です。

そこで今回はNode.js用のフレームワークであるexpress(http://expressjs.com/)を利用したアプリケーション開発を簡単に解説します。

なお、今回の記事は前回用意した環境を前提としています。従って今回初めての方は適宜ご自分の環境に読み替えるか、前回の記事を参考に環境のセットアップをしてください。

expressのインストール

expressのインストールはnpmというパッケージ管理ツールを利用して行います。npmはNode.jsをインストールすると標準でインストールされるNode.js用のパッケージ管理ツールです。npmでインストール可能なパッケージの一覧はこちらのサイト(https://npmjs.org/)で確認できます。

今回はまずexpressをインストールし、コマンドを利用してひな形を作成します。expressコマンドを利用できるようにするため、"-g"オプションを指定してグローバルにインストールします。

$ npm install -g express
$ express myapp

expressコマンドを実行すると、指定したアプリケーション名のディレクトリがカレントディレクトリに作成され、そのディレクトリ内に必要なファイルとディレクトリが作られます。

なお、ExpressはEJSなどの複数のテンプレートエンジンやStylusなどのCSS拡張がサポートされていて、コマンド実行時に指定することも可能です。今回のように何も指定しないとjadeが使用されます。jadeとはHamlのようにシンプルな記述でHTMLを記述できるNode.js用のテンプレートエンジンです。

作成されたディレクトリの中を見てみるとapp.jsというファイルが作成されています。このapp.jsがアプリケーション本体となります。ただし、このままでは作成したアプリケーションが依存するパッケージが存在しないため、依存関係を解決した上で起動します。

Node.jsの依存パッケージ管理

expressコマンドで作成されたファイルにpackage.jsonというものがあります。これはnpmを利用してアプリケーションの依存パッケージやそのバージョンを管理するためのファイルで、その名の通りjson形式で各種指定を行います。

中身を見ると、アプリケーションの名前やバージョンと合わせて依存するパッケージをdependenciesというフィールドに記述されていることがわかります。最初の時点ではexpressとjadeしか指定されていませんが、アプリケーションの開発を行うにあたって利用するライブラリなどがあれば、ここに追記していきます。

前回、eXcaleへのデプロイ時にpackage.jsonが必要と説明しましたが、それはeXcaleでもNode.jsを利用したアプリケーションの依存関係の解決にはnpmを利用しており、デプロイされたアプリケーションに含まれるpackage.jsonを利用して、アプリケーションごとに依存するパッケージをインストールしているためです。

packege.jsonの記述方法の詳細は公式ドキュメント(https://npmjs.org/doc/json.html)を参考にしてください。

このpackage.jsonのあるディレクトリでnpm installコマンドを実行することで、package.jsonで指定されたパッケージがダウンロードされてインストールされます。インストールされるパッケージはnode_modulesというディレクトリに配置されています。

expressアプリケーションの起動

依存関係を解決した後、nodeコマンドでアプリケーションを起動します。

$ cd myapp/
$ npm install
$ node app.js

起動後、ブラウザからlocalhost:3000にアクセスするとシンプルなページが表示されるはずです。

図1:app.jsの実行(クリックで拡大)
TIS株式会社

TIS株式会社所属。金融系基幹システムの開発等に従事したのち、サービス企画・開発を担当。IaaS開発を経て、現在はアプリ開発者のためのPaaS「eXcale」の開発責任者兼プログラマとして活動中。
Twitter:@Keisuke69
eXcale:http://www.excale.net/

連載記事一覧

Think IT会員サービスのご案内

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスのご案内

関連記事