前回からの続き。
コーディングは、前回までで終了してますので、今回は実際に動かしてみましょう。
githubにレポジトリを公開しましたのでよろしければお使いください。
無保証ですので各自の責任でお願いします。
https://github.com/JunSuzukiJapan/MyFirstEBApp
まず、package.jsonに依存関係を記述しておきます。
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "3.2.0",
"jade": "*",
"mysql": "*",
"connect-flash": "*",
"passport": "*",
"passport-local": "*"
}
}
そうしたら、依存しているモジュールを自動でダウンロードするために、
ターミナルから以下のコマンドを実行します。
$ npm install
場合によっては、npm installの前に、sudoをつける必要があるかもしれません。
うまく依存関係が解決されたら、実行してみましょう。
ターミナルから以下のコマンドでサーバーが立ち上がります。
$ node app.js
エラーがなければ、ポート3000番でサーバーが動いてますので、
ブラウザから http://localhost:3000/ にアクセスしてみましょう。
ローカルで動作確認が出来たら、AWSにデプロイします。
$ git add .
$ git commit -m 'Second commit.'
$ git aws.push
設定が間違いなければ、これでElastic Beanstalkにデプロイされますので、
$ eb status --verbose
で状態がReadyになるのを待って、
AWS Management Consoleで確認できるElastic BeanstalkのURLを表示してみましょう。
以上
現時点では、筆者のサーバーでログインしようとすると
「502 Bad gateway」エラーがでます><
原因を調査して、解決したら記事に書き足す予定です。
追記
エラーの原因はどうやら自分で勝手にDBテーブルを作ったのが
いけなかったようだ。
Elastic Beanstalkがあらかじめ'ebdb'というテーブルを
用意してくれているのでそれを使うことにしたら動きました。"502 Bad gateway"は、package.jsonに記載していないライブラリを
requireするときにもでるようです。
必要のないライブラリはrequireしない、かつ、必要なライブラリは
package.jsonに記載しておくことを心がけよう…。
サインアップしても自動でログインされないのをなんとかしたいところです…