這是在講關於一名叫 Koa 的全端勇士傳說-部屬 Heroku

前言

前面已經將基本的會員機制給完成了,那麼實際該如何部屬 Heroku 呢?這邊就來記錄一下吧

Heorku

首先要開啟新的機器,這邊會透過 Heroku cli 來建立,如果不清楚的話可以我先前寫的其中一個系列文章 實作發送電子郵件並且部屬 HeroKu(3)

所以這邊就不廢話直接很快速地建立了好機器,但是這邊會出現這些錯誤

1
npm ERR! missing script: start

ERR! missing

這個問題只是 package.json 缺少了一行指令而已,只需要補上 scripts: { "start": "node app.js"} 即可

start

最後這邊還要修改一個地方,也就是 app.js 中的開啟伺服器的部分,請調整成以下

1
2
3
4
let prot = process.env.PORT || '3000'
app.listen(prot, async ()=>{
console.log('Example app listening on port 3000!');
});

安裝 MySQL

接下來你可能會興高采烈地開啟應用程式網址,但是你會發現 500 錯誤,而且出現這個錯誤訊息

1
SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306

那麼問題是出在我們沒有替 Heroku 安裝 MySQL 導致,所以來替 Heroku 安裝 MySQL 吧

首先先輸入以下指令來建立資料庫

1
heroku addons:add cleardb

建立資料庫

接下來輸入以下指令來看資料庫位子

1
heroku config

CLEARDB_DATABASE_URL

那麼這一串意思是這樣子

1
mysql://[username]:[password]@[host]/[database name]?reconnect=true

所以就可以透過以上來使用 Navicat 來連接資料庫囉~

連接資料庫

那麼我們就必須調整一下專案中的 config/config.json (請調整 production)

config/config.json

接下來輸入 heroku run sequelize db:migrate,這樣 sequelize 就會開始將 Model 遷移到資料庫內囉~

migrate

migrate 成功

這時候就可以打開資料庫來看資料表內是不是真的都有資料表哩~

資料表

那麼就可以線上玩玩看哩,這邊就提供給各位玩囉

簡易會員系統

參考文獻

sequelize migrations in heroku

ClearDB MySQL

Heroku ClearDB database (MySQL) 連線方式 (sequel pro) 筆記