Bun 入门:Bun.serve 零依赖启动 HTTP 服务

一、Bun 的 HTTP 服务器是内置的

用 Node.js 写一个 HTTP 接口,至少要装 express 或 http 模块。用 Bun,什么都不用装------Bun.serve 是运行时自带的 API。

typescript 复制代码
const server = Bun.serve({
    port: 8080,
    fetch(req) {
        const url = new URL(req.url);
        if (url.pathname === '/todos' && req.method === 'GET') {
            return Response.json(todos);
        }
        return new Response('Not Found', { status: 404 });
    }
});

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

这段代码不需要 import 任何外部包。Bun.serveRequestResponse 都是 Web 标准 API。


二、TypeScript 零配置

Bun 内置 TypeScript 转译器,不需要 tsc、ts-node、tsconfig.json:

bash 复制代码
bun run server.ts

直接运行 .ts 文件。启动速度远快于 ts-node,因为 Bun 的转译器用 Zig 实现,没有冷启动延迟。


三、路由手动处理

Bun.serve 没有内置路由------路由需要自己解析:

typescript 复制代码
fetch(req) {
    const url = new URL(req.url);
    const id = url.pathname.match(/^\/todos\/(\d+)$/)?.[1];
    if (id) {
        const todo = todos.find(t => t.id === parseInt(id));
        return Response.json(todo);
    }
}

对于小项目,手动路由比上框架更透明。等路由多了再用 Elysia 或 Hono。


四、和 Node.js 对比

Node.js + Express 需要 npm install express + ts-node。Bun 零依赖,内置 TypeScript 支持,API 遵循 Web 标准。HTTP 吞吐量约为 Node.js 的 3-5 倍。


五、总结

  1. Bun.serve 零依赖启动 HTTP 服务,API 遵循 Web 标准
  2. TypeScript 开箱即用,无需配置
  3. 路由需手动解析,小项目够用
  4. 前端也可以用同样的 fetch API 调用后端
相关推荐
穗余42 分钟前
Typescript let和var区别
前端·javascript·typescript
苏灿烤鱼2 小时前
AI总改崩你的代码?4.6万星GitNexus架构深拆
typescript·开源·agent
软件开发技术深度爱好者16 小时前
在线学习实践 TypeScript 的官方Playground(演练场)使用介绍
javascript·学习·typescript
YHHLAI1 天前
React + TypeScript 实战:从零构建颜色选择器应用
前端·react.js·typescript
YHHLAI1 天前
[特殊字符] 从 JSX 到 TypeScript:React 开发的进化之路
javascript·react.js·typescript
Flynt1 天前
React Router v8 升了之后,我花了两天才把项目跑起来
前端·typescript·preact
浮生望1 天前
TypeScript 高级工具类型实战:Pick、Omit、Partial 到 Record 的完整解析
typescript
程序员小八7772 天前
后端开发初学TypeScript
前端·javascript·typescript
xm_xm_xm_13 天前
TypeScript 7 个 核心特性
前端·typescript