100秒了解Elysia
Source: Dev.to
Overview
ElysiaJS 是一个高性能、静态类型的 Web 框架,运行在 Bun runtime 上。它以显著快于 Express 而闻名,旨在提供开发者友好的 API,同时保持极致速度。
Features
- Speed – 利用 Bun 的即时编译(JIT)实现微秒级的启动时间。
- Type safety – 使用 TypeBox 提供端到端的类型安全,且不会带来运行时性能损失或大量样板代码。
- Fluent API – 路由采用链式语法(
.get()、.post()等)定义,返回的普通对象会自动序列化为 JSON。 - Schema validation – 通过
t变量附加模式对象,以在运行时验证传入数据,并为 IDE 自动补全推断 TypeScript 类型。 - Eden Treaty – 允许前端直接导入后端的类型定义,为客户端的 API 调用提供完整的自动补全。
- Minimal decorators – 与 NestJS 不同,Elysia 不需要使用复杂的装饰器来定义路由。
Getting Started
-
Install Bun(如果尚未安装)。
-
Create a TypeScript file(例如
app.ts)。 -
Initialize the app:
import { Elysia, t } from "elysia"; const app = new Elysia(); -
Define a route using the fluent API:
app.get("/", () => { return { message: "Hello, Elysia!" }; }); -
Add schema validation(可选但推荐):
app.get( "/user/:id", { params: t.Object({ id: t.String(), }), }, ({ params }) => { // `params.id` 被保证为字符串 return { userId: params.id }; } ); -
Run the server:
bun run app.ts服务器将在微秒内启动,准备好处理请求。
Summary
ElysiaJS 将 Bun 的速度与强大的类型安全以及简洁的链式 API 结合在一起,成为传统 Node.js 框架(如 Express 和 NestJS)的有力替代方案。其内置的模式验证和 Eden Treaty 进一步通过保持后端与前端类型定义同步,简化了全栈开发。