nodejs & expressjs での開発環境設定
nodejsだけでwebアプリケーションを開発するにあたり、expressjsフレームワークが便利だということで環境設定を早速やってみたのですが、ドットインストールさんの方法の中でバージョン違いで引っかかった部分とかがあったのでメモしておきます。
公式ページ
環境
- OS: CentOS6
- nodejs: v0.12.7
- expressjs: v4.13.3
nodejsのインストール
nodejsにもバージョン管理ツールがあるので今回はこちらを使用したインストールを想定します。
インストールは、git clone して、環境設定していきます。
clone後に最新版にcheckoutして、使用しているshellの設定ファイルにnvm.sh実行するようにしておきます。自分はzsh使用しているので.zshrcに追記していきます。
$ cd ~
$ git clone https://github.com/creationix/nvm.git ~/.nvm
$ cd .nvm
$ git checkout -b `git describe --abbrev=0 --tags`
$ echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
$ echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> ~/.zshrc
$ source ~/.zshrc
nvmがインストールできたら、nodejsのバージョンを確認して、インストールしていきます。
$ nvm ls-remote
$ nvm install v0.12.7
$ nvm ls
$ node --version
expressjsのインストール
expressjsは、nodejsをインストールした際に一緒にインストールされるnodejsのパッケージ管理ツールのnpmを使用してインストールします。
npmでのインストールはオプション指定しない場合は、カレントディレクトリにパッケージをダウンロードします。グローバル環境にインストールしたい時は、" -g "オプションを使用します。
また、expressコマンドを使用するためにexpress-generatorというパッケージも必要なので合わせてインストールします。(旧バージョンでは一緒になっていたみたいです。)
グローバルインストールしたパッケージは、~/.npm配下にダウンロードされます。
$ npm install -g express
$ npm install -g express-generator
$ express --version
expressjsの雛形を作る
expressjsもインストールできたところで雛形をexpressコマンドを使用して作ります。
適当なディレクトリを作ってコマンドを実行するだけで雛形を作ってくれます。
$ mkdir work
$ cd work
$ express samlpe_app
create : sample_app
create : sample_app/package.json
create : sample_app/app.js
create : sample_app/public
create : sample_app/public/javascripts
create : sample_app/public/images
create : sample_app/public/stylesheets
create : sample_app/public/stylesheets/style.css
create : sample_app/routes
create : sample_app/routes/index.js
create : sample_app/routes/users.js
create : sample_app/views
create : sample_app/views/index.jade
create : sample_app/views/layout.jade
create : sample_app/views/error.jade
create : sample_app/bin
create : sample_app/bin/www
install dependencies:
$ cd sample_app && npm install
run the app:
$ DEBUG=sample_app:* npm start
$
出力結果にも記載がありますが、expressで作った雛形の依存パッケージをインストールする必要があるため、出来上がったアプリケーションディレクトリ配下でパッケージをインストールします。インストールされるパッケージは、package.jsに定義されています。
$ cd sample_app
$ npm install
アプリケーション起動
パッケージもインストールできたところでいよいよアプリケーションの起動です。
npm startしてね。と記載がありますが、これはpackage.jsのscriptsオブジェクトで定義されているファイルをnodejsで実行します。デフォルトでは、$APP_HOME/bin/wwwが指定されています。なので、下記でも実行できます。
$ npm start
または
$ node ./bin/www
アクセスしてみる
デフォルトでは、3000番ポートでListenしているので、下記でアクセスできます。
http://localhost:3000/
あとは雛形を元にアプリケーション拡張していくようになります。
自分はJavaScript初心者のため、雛形のコードを読んで、どのように動くかを学習しようと思います。良い学習ページ、書籍がありましたらコメントいただけると嬉しいです。