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.serve、Request、Response 都是 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 调用后端
相关推荐
RobinDevNotes4 小时前
一套代码发布到十几个平台:Cocos入门速览
typescript·c#·游戏开发
前端小L12 小时前
typescript基础
typescript
濮水大叔18 小时前
CabloyJS 的 AI 时刻:从 TypeScript 全栈框架到 AI 规范驱动开发
typescript·ai编程·全栈
程序员Sunday1 天前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
三十而立洋1 天前
TypeScript 7.0 深度解析:新特性、Go 原生编译器及与 TypeScript 6.0 的区别
前端·typescript·前端工程化
VimorphTech1 天前
React 自动保存怎么设计?防抖、串行请求与导出前等待
后端·typescript
yuanlaile2 天前
做了 3 年后端才明白:学 NestJS 千万不要只学 API 语法,完整电商项目才是分水岭
typescript·nestjs·node.js 后端·nestjs实战
ZoeLandia2 天前
TypeScript 07:工程化——import type、声明文件与 tsconfig
开发语言·前端·typescript
nyaomaru2 天前
如何用 Jev 从 PR 中提取 “Why” 并写入 CHANGELOG?🤔
前端·typescript
damoluomu2 天前
SSG 的后台怎么补:Node.js 生态里的三条路(番外二)
javascript·css·typescript·node.js·html