1
4

More than 3 years have passed since last update.

Node.jsとMongoDBのAPIをHerokuにデプロイするまで

Last updated at Posted at 2020-05-29

はじめに。

私は今、Reactと、Nodeでwebアプリを作っています。EC2に環境立ち上げるのはクソだるい... ってことで今までRailsでしか使ってなかったHerokuを使うことに。

Reactは超簡単にデプロイできて奇跡だと思った。Nodeも考える時間含めて2時間くらいでデプロイできた。奇跡!!!

セールスフォースの株買って大切に大切に保持しておきたい。

Node.jsとMongoDBのAPIをHerokuにデプロイ成功した絵

単純にルートで文字返してるだけ。

スクリーンショット 2020-05-29 23.29.37.png

一番最初はProcfileを作る

僕はローカルで、

% node app/app.js

でアプロを起動させていたので、

% pwd
/Users/ryosuke-hujisawa/Desktop/アプリ

// ここにProcfile作った
% ls
README.md       app         node_modules        package-lock.json   package.json

$ touch Procfile

//これで動いた
web: node app/app.js

次、herokuアプリを作ろう

$ heroku create herokuアプリの名前

//これでリモート確認できるよ
$ git remote -v

ProcfileをHerokuにまずはPushします。

$ git add . 
$ git commit -m "setting up to push to Heroku"
$ git push heroku master

プロダクション Databaseを作ります。

$ heroku addons:create mongolab:sandbox

DBの設定を書き換えよう

僕は元々こうなってたのを

module.exports = {
    'secret': 'oauthServerSampleSecret',
    'database': 'mongodb://localhost/server_oauth'
  }

こうした

module.exports = {
    'secret': 'oauthServerSampleSecret',
    'database': process.env.DEV_MONGODB_URI || process.env.MONGODB_URI
  }

process.env.DEV_MONGODB_URI. これは.envに書く。

で、process.env.MONGODB_URI はherokuで設定する。これですね↓

スクリーンショット 2020-05-29 23.37.38.png

次、dotenvをインストールしよう

run npm install dotenv 

もしくは

yarn add dotenv

で、dotenvを確実に、一番上に僕が読み込んだ。

                                require('dotenv').config()
                                //dotenvの下にdbの設定書く
    var config                = require('./config'); //ここにdbの設定
    var express               = require('express');
    var app                   = express();

で、Herokuにpushする

$ git push heroku master

終わり!

おめでとうございます。

$ heroku open 

これで、NodeJSのapiをHerokuで運用できるね。

参考

How to deploy your Node.js / MongoDB app to the web, using Heroku

余談

途中でエディタ権限で保存できなくなってこのコマンド使った。

sudo chmod -R 777 プロジェクトディレクトリ
1
4
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
1
4