用途:这是围绕 Bun 内置高性能 HTTP 服务器 Bun.serve() 的实践指南,适合用 Bun 搭建 HTTP 服务、REST API、路由分发、请求解析与响应返回等场景。
主要能力:启动服务(可设 port、hostname、development、tls、unix、maxRequestBodySize);处理请求,读取方法、路径、查询参数和请求头;解析 JSON、表单、文本、ArrayBuffer、Blob 等请求体;返回 JSON、HTML、重定向、文件、流式响应;用正则做动态路由,或用 Bun 1.2+ 的 routes 选项声明路由并读取 req.params;提供静态文件服务、CORS 头处理、try/catch 与全局 error 处理器;可查询 port、hostname、url、pendingRequests,并调用 stop()、reload()。
用法:基础形式为 Bun.serve({ port: 3000, fetch(req) { return new Response("Hello World!"); } })。新代码优先用 routes 声明路由,未匹配路径可回退到 fetch。停止服务在 Bun 1.2+ 返回 Promise,需 await 才能排空在途请求;server.reload 可替换配置。
限制与注意:请求体只能读取一次;端口占用会报 EADDRINUSE;超限会返回 413;CORS 需自行补头。HTTPS/TLS、证书与 mTLS 参见 references/tls-config.md,SSE、流式响应与分块传输参见 references/streaming.md。资料未提供具体版本兼容范围与性能数据。