開發完成後,最開心的莫過於把作品放到雲端上讓朋友使用了!今天我們要把 Node.js + Express 寫的後端 API 部署到 Vercel。Vercel 原本是為前端打造的平台,但它對於無伺服器函數 (Serverless Functions) 的支援也非常棒,非常適合我們這個不需要將圖片存進本地硬碟的後端架構!
把後端放上 Vercel,您就正式擁抱了 Serverless 架構。但您可能會發現一個奇怪的現象:「為什麼 API 第一次打都要等好幾秒,第二次以後就瞬間回傳了?」
這就是所謂的 冷啟動 (Cold Start):
理解了這個原理,就不會把剛部署完的初次延遲誤以為是自己程式寫爛了!
要讓 Vercel 認識我們的 Express 專案,我們需要在 backend 資料夾的根目錄新增一個 vercel.json 設定檔,告訴它打包的規則:
{
"version": 2,
"builds": [
{
"src": "src/index.ts",
"use": "@vercel/node"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "src/index.ts"
}
]
}
這段設定的意思是:請使用 @vercel/node 來處理我們的 src/index.ts,並且把所有連進來的網址路由 (/(.*)),全部無腦轉交給 src/index.ts 裡的 Express 程式來接手處理!

後端 Vercel 部署成功。
有了 vercel.json 的加持,只要把程式碼推上 GitHub,Vercel 就會自動幫我們建置出穩定的 API 伺服器。明天,我們要把漂亮的前端 React 畫面部署到 Render 上!