expressで開発したWebアプリをeXcaleで動かす
はじめに
前回の記事では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にアクセスするとシンプルなページが表示されるはずです。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Socket.IOを使ってNode.jsでリアルタイムWebアプリを開発する
- Node.jsとExpress.jsで開発したWebアプリをeXcaleで動かす
- Raspberry PiとNode.jsで作る独立稼働モバイルサーバ
- HTTPリクエストを簡単に!npm requestを使う方法【初心者向け】
- CloudサービスとRPAの連携
- Alexa Skills Kit SDK for Node.jsについて知る
- Fabric SDK(Software Development Kit)を用いてNode.jsからchaincodeを呼び出す
- チャットアプリとRPAとの連携
- 生まれ変わったJavaScript/ECMAScript
- テストコードを書いて「GitHub Actions」でCIを実行してみよう