Interactive Playground

在线编辑器已在低内存构建中禁用

当前部署环境只有 2C4G。为了避免构建阶段因 Monaco、Rollup Browser 和 类型分析导致 OOM,这个版本只保留教程内容,不内嵌在线 Playground。

bun run build:full

如需完整交互体验,请在更高配置环境执行上面的完整构建命令。

处理器与上下文

处理器 - 一个资源或路由函数,用于向客户端发送数据。

ts
import { Elysia } from 'elysia'

new Elysia()
    // `() => 'hello world'` 是一个处理器
    .get('/', () => 'hello world')
    .listen(3000)

处理器也可以是一个字面值,见 处理器

ts
import { Elysia } from 'elysia'

new Elysia()
    // `'hello world'` 是一个处理器
    .get('/', 'hello world')
    .listen(3000)

使用内联值对于像 文件 这样的静态资源可能很有用。

上下文

包含有关每个请求的信息。它作为处理器的唯一参数传递。

typescript
import { Elysia } from 'elysia'

new Elysia()
	.get('/', (context) => context.path)
            // ^ 这是一个上下文

上下文 存储关于请求的信息,例如:

  • body - 客户端发送到服务器的数据,如表单数据、JSON 负载。
  • query - 作为对象的查询字符串。(查询是从路径名以 '?' 问号开始的值中提取的)
  • params - 解析为对象的路径参数
  • headers - HTTP 头,关于请求的附加信息,如 "Content-Type"。

请参见 上下文

预览

您可以通过查看 编辑器 部分来预览结果。

在预览窗口的 左上角 应该有一个小导航器。

您可以使用它在路径和方法之间切换以查看响应。

您还可以点击 来编辑请求体和头部。

练习

让我们尝试提取上下文参数:

  1. 我们可以从回调函数的第一个参数中提取 bodyqueryheaders
  2. 然后我们可以像 { body, query, headers } 这样返回它们。
typescript
import { Elysia } from 'elysia'

new Elysia()
	.post('/', ({ body, query, headers }) => {
		return {
			query,
			body,
			headers
		}
	})
	.listen(3000)