錯誤處理
學習如何在 Bun 的開發伺服器中處理錯誤
預設情況下,Bun.serve() 以開發模式執行。設定 NODE_ENV=production 或傳入 development: false 時,會關閉開發模式。
Bun.serve({
development: false, // [!code ++]
fetch(req) {
throw new Error("woops!");
},
});
在開發模式下,如果請求處理程序丟擲錯誤,且沒有 error 處理程序傳回響應,Bun 會傳回內建錯誤頁面,其中包含錯誤訊息、堆疊跟蹤、每個堆疊幀周圍的原始碼以及檔案路徑。此頁面旨在用於本地除錯。

error 回撥
要處理伺服器端錯誤,請實現 error 處理程序。發生錯誤時,傳回一個 Response 以傳送給客戶端。在 development 模式下,此響應會替代 Bun 的預設錯誤頁面。
TypeScript
Bun.serve({
fetch(req) {
throw new Error("woops!");
},
error(error) {
return new Response(`<pre>${error}\n${error.stack}</pre>`, {
headers: {
"Content-Type": "text/html",
},
});
},
});