错误处理
我们来检查访问/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 的默认错误屏幕。
抛出错误时可以使用错误处理程序进行错误处理,而不是显示 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 的默认错误屏幕。 如果HTTP服务器内部发生错误,可以这样进行错误处理。