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

はじめに前回の記事ではeXcale上にアカウントを解説してNode.jsで書いたシンプルなアプリケーションをデプロイしてみました。しかし、実際のWebアプリケーションではURIのパス解析など複雑な実装が必要です。そこで今回はNode.js用のフレームワークであるexpress(http://exp

西谷 圭介

2013年1月30日 20:00

はじめに

前回の記事では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の実行(クリックで拡大)
この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30