[技術雜記] 於 Heroku 上使用 Nest.js 建構 GraphQL Server.
此文目標
於 Heroku 上使用 Nest.js 建構 GraphQL Server.起因
當使用 Nest.js 建構完 Server site 的程式碼後,接著就會思考如何將此部署於網路上。此時查詢後發現 Heroku 網站有支援 Nest.js。因此就用 Heroku 來建構。
查詢 Nest.js 部署於 Heroku 的文章有下列此篇,因此確認 Nest.js 可以於 Heroku 部署
https://medium.com/@terence410/setup-nestjs-server-on-heroku-1475c5cdb1d1
Step1:
確認Heroku的支援與條款。(1) Node.js有支援
(2) 確認是否有免費試用選項,答案是Yes,但目前免費的只能架設一個案子,而且30分鐘沒使用就會進入休眠。
詳細參閱:https://www.heroku.com/dynos
Step2:
註冊 (請依照網站指示註冊)Step3:
進入平台後選擇建構 Node.js 相關 Server,區域的部分因為沒有台灣,所以我選擇美國。
Step4:
Heroku 平台有連動 Github,所以可以設定好連動,也能設定連動到哪個專案,專案的哪個分支以及是否自動發布(每次程式碼有更新就會自動部署)。
也能有手動部署
Step5:
進行部署,確認系統狀態,可以進到 Activity 頁面確認發佈狀態,如果部署失敗,也能確認 Build log (截圖為部署失敗log)
Step6:
部署成功後就能到 App 生成的連結去確認自己的專案是否正常運作。備註
(1) Heroku 的免費方案是設定系統會執行 npm start,所以記得將 package.json 的 script 設定正確,如此才能正常運作。目前我是設為 "start": "node dist/main" 使系統執行 biuld 出來的檔案來運作。
如果是設定為 "start:dev": "nest start", 則會可能因為系統找不到nest指令而錯誤
(2) 另一個遇見的問題是,部署繫統時,系統顯示 PORT 不正確,查明後發現是設置的 PORT 跟 Heroku 提供的 Port 有所不同,解法可以參考參考資料的第四項 (Heroku - Why Node.js app has R10 error)。
專案 Github 與專案部署連結
- Github: https://github.com/HsiehMinChien/nextjs-demo-project
- Project: https://nestjs-demo-project.herokuapp.com/
留言
張貼留言