LoginSignup
4
3

More than 5 years have passed since last update.

1時間でNodeアプリケーションをHerokuにデプロイする。

Last updated at Posted at 2017-06-08

HerokuでNodeアプリ公開してみた

自分で作ったnodeアプリを公開したいと思いやってみた。ちなみにアプリケーションにはsocket.ioを使ってリアルタイム通信ができるようにした。
githubリポジトリがあり、アプリケーションがデプロイできる状態であることを前提とする。
アプリケーションのコードとherokuのURLは以下。
githubのURL
herokuにデプロイしたアプリケーションのURL
スクリーンショット (69).png

まず最初にCLIツールをインストール

これでHerokuにログインするらしい。もしHerokuアカウントがない場合はアカウントを作る。
公式サイトでインストーラがあるでのインストール

ログイン

heroku login
コマンドでログインする。
メールアドレスとパスワードを聞かれるので入力。

デプロイ先を作る

heroku createコマンドでソースコードをアップする場所を作る。
自分の場合は以下のような出力が出た。
Creating app... done, oung-mesa-49188
https://young-mesa-49188.herokuapp.com/ | https://git.heroku.com/young-mesa-49188.git
この左側のURLがアプリケーションのURLになる。

アプリケーションのデプロイ

デプロイのコマンドは以下。
git push heroku master

自分の場合はこれをやったらエラー出た。なんでだろう?と思いエラーログを見た。
logのコマンドは

heroku logs --tail

みるとアプリケーションに必要なモジュールがインストールされていないとのこと。

package.json

普通にデプロイするとpackage.jsonのdevDependences に書かれたモジュールが無視される。
そこでdependencesのところにモジュールをすべて記入した。その後もう一度デプロイするとうまくいった。あとから、調べるとdevDependences書かれたモジュールをインストールさせるオプションのコマンドがあった。めんどくさい人はdependencesに記入。

変更後、実行コマンド

git add -u
git commit -m "change package.json"
git push heroku master

ブランチを切っている場合のデプロイ方法

ブランチを切っていると
git push heroku masterコマンドではうまくいかない。
以下のコマンドの場合うまくいく。
git push heroku ブランチ名:master

デプロイされたアプリケーションを触る

heroku open
でアプリケーションのページに遷移する。

mongodbのaddonを使う

アドオンを使うにはクレジットカードの登録が必要なのでherokuのbillingのところから登録。
登録後
heroku addons:add mongolab:sandbox
でmongodbが使えるようになる。ちなみにsandboxは無料。
heroku config
でMongoDBのURLが見れるのでコードの設定変更する。自分の場合は以下のように変更。 

var mongoose = require('mongoose');
var mURI='monngodbのURLをここに書く';
mongoose.connect(mURI,function(err){
  if(err){
    console.log(err);
  }
});
・・・・

socket.ioを使う

クライアント側のコードが違っていたので自分はつまずいた。ローカルでやるときとは変えなくてはならない。var socket = io();に変更しましょう。

<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script type="text/javascript">

var socket = io();
・・・

おわり

とりあえずこれでデプロイの方法は終了です。
ものすごく簡単にherokuにデプロイができるのでアプリケーションの公開におすすめ。無料です。
コードをgithubに公開しているのでぜひ見てください。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3