執行環境套件管理器打包器測試執行器程式碼檢查格式化指南參考部落格意見回饋

錯誤處理

學習如何在 Bun 的開發伺服器中處理錯誤

預設情況下,Bun.serve() 以開發模式執行。設定 NODE_ENV=production 或傳入 development: false 時,會關閉開發模式。

server.ts
Bun.serve({
  development: false, // [!code ++]
  fetch(req) {
    throw new Error("woops!");
  },
});

在開發模式下,如果請求處理程序丟擲錯誤,且沒有 error 處理程序傳回響應,Bun 會傳回內建錯誤頁面,其中包含錯誤訊息、堆疊跟蹤、每個堆疊幀周圍的原始碼以及檔案路徑。此頁面旨在用於本地除錯。

Bun 內建的 500 錯誤頁面

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",
      },
    });
  },
});