Bun入门指南

错误处理

Preview
  • 错误处理

错误处理

我们来检查访问/slug时抛出Error时的操作。

//index.ts
const server = Bun.serve({
    port:3000,
    fetch(request: Request, server: Server): Response | Promise<Response> {
        const url = new URL(request.url)
        if (url.pathname === '/') return  new Response('Home Page')
        if (url.pathname === '/slug') throw new Error('woops!')
        return new Response('404!')
    }
})

console.log(`Listening on http://localhost:${server.port} ...`);

当从浏览器访问 http://localhost:3000/slug 时,会显示 Bun 的默认错误屏幕。

image.png 抛出错误时可以使用错误处理程序进行错误处理,而不是显示 Bun 的默认错误屏幕。

//index.ts
const server = Bun.serve({
    port:3000,
    fetch(request: Request, server: Server): Response | Promise<Response> {
        const url = new URL(request.url)
        if (url.pathname === '/') return  new Response('Home Page')
        if (url.pathname === '/slug') throw new Error('woops!')
        return new Response('404!')
    },
    error(error){
        return new Response(`<pre>${error}\n${error.stack}</pre>`,{
            headers:{
                'Content-Type': 'text/html'
            }
        })
    }
})

console.log(`Listening on http://localhost:${server.port} ...`);

当从浏览器访问 http://localhost:3000/slug 时,将显示配置的错误,而不是 Bun 的默认错误屏幕。 image.png 如果HTTP服务器内部发生错误,可以这样进行错误处理。