elysia
约 1 分钟阅读
- elysiajs/elysiaGitHubelysiajs/elysiaelysiajs/elysia · 基于 bun 的 Web 框架 · 使用 @sinclair/typebox · 代码量很少,逻辑简单 · AOT · 生成代码来进行 route · route 变成一个大 switch · 与 hono 非常相似,但面向 bun 为主笔记:elysia
- 基于 bun笔记bunoven-sh/bun · MIT, Zig · JavaScriptCore,tinycc,libiconv LGPLv2 · boringssl,libarchive,libiconv,lol-html,mimalloc,picohttp,tinycc,uSockets,zlib-cloudflare,libicu,uWebsockets打开:/notes/web/dev/bun 的 Web 框架
- 使用 @sinclair/typebox
- 代码量很少,逻辑简单
- AOT
- 生成代码来进行 route
- route 变成一个大 switch
- 与 hono笔记Honohonojs/hono · Fast, Lightweight, Web-standards · 支持环境 · Cloudflare Workers · Cloudflare Pages · Fastly Compute · Deno · Bun打开:/notes/web/dev/hono 非常相似,但面向 bun 为主
- hono 更早,支持更多 环境
- 没有 AOT
- 没默认 typebox - 支持多种 validator
- 参考
- bogeychan/elysia-polyfillsGitHubbogeychan/elysia-polyfillselysiajs/elysia · 基于 bun 的 Web 框架 · 使用 @sinclair/typebox · 代码量很少,逻辑简单 · AOT · 生成代码来进行 route · route 变成一个大 switch · 与 hono 非常相似,但面向 bun 为主笔记:elysia
- 可以在 node 环境下使用 elysia
- bogeychan/elysia-polyfillsGitHubbogeychan/elysia-polyfillselysiajs/elysia · 基于 bun 的 Web 框架 · 使用 @sinclair/typebox · 代码量很少,逻辑简单 · AOT · 生成代码来进行 route · route 变成一个大 switch · 与 hono 非常相似,但面向 bun 为主笔记:elysia
pnpm add elysia @elysiajs/swagger @elysiajs/staticPackageselysianpm PackageelysiaNPM@elysiajs/swaggernpm Package@elysiajs/swaggerNPM@elysiajs/staticnpm Package@elysiajs/staticNPM
import { Elysia, t } from 'elysia';
import { swagger } from '@elysiajs/swagger';
const app = new Elysia()
.use(swagger())
.post('/sign-in', ({ body }) => signIn(body), {
body: t.Object({
username: t.String(),
password: t.String(),
}),
})
.listen(8080);
export type App = typeof app;import { edenTreaty } from '@elysiajs/eden';
import type { App } from './server';
const app = edenTreaty<App>('http://localhost:8080');
app.signIn
.post({
username: 'saltyaom',
password: 12345678,
})
.then(console.log);Notes
- 完整流程 elysiajs/elysia/src/dynamic-handle.tsGitHub Fileelysiajs/elysia/src/dynamic-handle.ts
- decorator
- 增加在 context 上
- state
- 增加在 store 上
- context
- request
- set
- store
- body
- query
- params
- headers
- cookies
- handler - 一条路由
- store - 构建时的配置信息
- handle
- hooks
- transform
- beforeHandle
- afterHandle
- validator
- body
- headers
- query
- params
- cookie
- response
- content - ContentType
- application/octet-stream 会让 body 为 arrayBuffer
- 没有则会触发 onParse
- fallback 为基于 header 里的 content-type 进行 parse
- store - 构建时的配置信息
FAQ
- gen eden types
- elysiajs/elysia#257GitHub Issueelysiajs/elysia#257
关联信息
反向链接、本文链接的其他页面和外部资料。
站内链接
- bun笔记 · bun
oven-sh/bun · MIT, Zig · JavaScriptCore,tinycc,libiconv LGPLv2 · boringssl,libarchive,libiconv,lol-html,mimalloc,picohttp,tinycc,uSockets,zlib-cloudflare,libicu,uWebsockets
- Hono笔记 · hono
honojs/hono · Fast, Lightweight, Web-standards · 支持环境 · Cloudflare Workers · Cloudflare Pages · Fastly Compute · Deno · Bun
References
GitHub4 条
- bogeychan/elysia-polyfillsgithub.com/bogeychan/elysia-polyfills
- elysiajs/elysiagithub.com/elysiajs/elysia
- elysiajs/elysia/src/dynamic-handle.tsgithub.com/elysiajs/elysia/blob/main/src/dynamic-handle.ts
- elysiajs/elysia#257github.com/elysiajs/elysia/issues/257