http://localhost:3000 孤獨地運作。要把程式碼放上雲端,業界通常有兩種選擇:
今天,我們將使用目前 Node.js 生態系中最受歡迎的免費 PaaS 平台:Render。
在把程式碼推上雲端之前,你的 app.js 與 package.json 必須符合雲端平台的規矩。
1. 動態綁定 Port
雲端平台不會永遠把 3000 Port 留給你。它會透過環境變數 process.env.PORT 隨機分配一個 Port 給你的程式。
請確保你的 app.js 底部是這樣寫的:
// 如果雲端環境有給 PORT 就用雲端的,否則才用本地的 3000
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`伺服器已啟動於 PORT: ${PORT}`);
});
2. 設定啟動指令 (Start Script)
雲端平台不知道你的主程式叫什麼名字,它預設會去執行 package.json 裡面的 start 腳本。
請打開 package.json,在 scripts 區塊加入:
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js" // 這是你在本地開發用的
}
步驟 1:將程式碼推上 GitHub
確保你的專案已經 commit 並 push 到你的 GitHub 儲存庫。
絕對注意:檢查你的 .gitignore,確保 .env 和 node_modules/ 沒有被推上 GitHub!
步驟 2:登入 Render
前往 Render.com,使用你的 GitHub 帳號註冊/登入。
步驟 3:建立 Web Service
步驟 4:設定環境與部署
Node(或者如果你有寫 Dockerfile,可以選 Docker)。npm install。npm start。.env 推上 GitHub,所以你要在這裡手動把 JWT_SECRET、DB_URL 等機密資料一筆一筆填進去。等待大約 2~3 分鐘,當畫面顯示綠色的 Live 標籤時,恭喜你!
Render 會配發一個類似 https://your-api-name.onrender.com 的網址給你。
趕快打開你的 Postman 或 Thunder Client,把網址從 http://localhost:3000 換成這個全新的雲端網址,發送一個 GET 請求看看吧。
你的 API,正式向全世界開放了!