iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0
自我挑戰組

30 天 Node.js 探索:基礎、進階與實踐系列 第 18

Day 18: 部署 Node.js 應用程式至 Heroku

  • 分享至 

  • xImage
  •  

接著要學習如何將 Node.js 應用程式部署到雲端平台 Heroku,並使應用可公開訪問。

為什麼選擇 Heroku?

Heroku 是一個廣受歡迎的雲端應用程式平台,支持多種程式語言。它的優點有:

  • 簡單的部署過程: 通過 Git 直接將應用程式推送到 Heroku。
  • 免費的入門級計劃: 適合個人項目和小型應用測試。
  • 自動處理基礎架構: 開發者無需管理伺服器。

前置準備

註冊Heroku 帳號

到官方網站即可免費註冊
https://ithelp.ithome.com.tw/upload/images/20241002/20169444L39wSSUkG1.png

安裝 Heroku CLI

像我的是windows,我先介紹其他電腦的安裝方式:
macOS: 使用 Homebrew

bash
brew tap heroku/brew && brew install heroku

Linux: 使用 apt

bash
sudo snap install --classic heroku

Windows:https://devcenter.heroku.com/articles/heroku-cli
去進行安裝
https://ithelp.ithome.com.tw/upload/images/20241002/20169444zyfbZOn6aV.png
接著還需要安裝git
https://ithelp.ithome.com.tw/upload/images/20241002/201694449z9QUIW26G.png

準備 Node.js 應用程式

假設我們已有一個簡單的 Node.js 應用程式:

js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

app.get('/', (req, res) => {
  res.send('Hello, Heroku!');
});

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

創建 Procfile

Heroku 需要一個名為 Procfile 的文件來告訴它如何運行應用。包含應用的啟動命令。

makefile
web: node server.js

將應用推送到 GitHub 或本地 Git 儲存庫

Heroku 使用 Git 進行應用部署。如果尚未將專案初始化為 Git 儲存庫,可以使用以下命令初始化:

bash
git init
git add .
git commit -m "Initial commit"

使用 Heroku CLI 部署應用

登入 Heroku

bash
heroku login

執行完之後會跳出登入視窗,成功登入後會顯示:
https://ithelp.ithome.com.tw/upload/images/20241002/20169444QWPvrPmtUv.png
之後就可以回去看是否登入成功:
https://ithelp.ithome.com.tw/upload/images/20241002/20169444AnB1uSjmHu.png

創建 Heroku 應用

登錄後,就可以命令創建一個新的 Heroku 應用:

bash
heroku create

Heroku 會自動分配一個唯一的域名,可以在這裡查看應用的 URL。

部署應用程式

使用 Git 將應用程式推送到 Heroku:

bash
git push heroku main

Heroku 會自動檢測應用程式類型(Node.js)並開始部署,完成後會顯示應用的 URL,通常是類似 https:/ /app-name.herokuapp.com 的網址。

檢查應用狀態

部署完成後,可以使用以下命令檢查應用是否在運行:

bash
heroku ps

訪問應用程式

應用部署成功後,可以直接在瀏覽器中訪問應用的 URL。例如:

bash
https://<app-name>.herokuapp.com

應該可以看到頁面顯示 "Hello, Heroku!"

設定環境變數

Heroku 支持使用環境變數來存儲應用的敏感資訊,如 API 金鑰或資料庫連接字串。使用以下命令設定環境變數:

bash
heroku config:set MY_VARIABLE=value

在程式碼中可以使用 process.env.MY_VARIABLE 來獲取這個變數的值。

日誌查看與錯誤排查

Heroku 提供了日誌系統,幫助開發者排查應用錯誤或監控應用狀態。使用以下命令查看應用的運行日誌:

bash
heroku logs --tail

這會持續顯示應用的即時日誌,方便了解應用的狀況。

自動化部署

Heroku 支持自動從 GitHub 進行部署。可以將應用與 GitHub 儲存庫連接,並設置自動化部署,當推送新的變更到 GitHub 時,Heroku 會自動更新應用。

  • 在 Heroku 網站的應用控制台中,進入 "Deploy" 分頁,選擇 GitHub,並連接到相應的儲存庫。
  • 選擇 "Enable Automatic Deploys" 來啟用自動部署。

總結

今天學習了如何將 Node.js 應用程式部署到 Heroku 雲端平台。透過 Heroku 的簡單部署流程,能快速將本地開發的應用公開至網路,並通過其環境變數配置、自動化部署等功能提升開發效率。在未來的開發過程中,Heroku 將為我們提供一個穩定且易於管理的部署平台。


上一篇
Day 17: 使用 WebSocket 實現即時通訊
下一篇
Day 19: 測試與偵錯:Mocha、Chai 基礎
系列文
30 天 Node.js 探索:基礎、進階與實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言