你的第一个路由
当我们访问一个网站时,它需要
- 路径 像
/、/about或/contact - 方法 像
GET、POST或DELETE
来确定要显示哪个资源,这简单地称为 “路由”。
在 Elysia 中,我们可以通过以下方式定义一个路由:
- 调用以 HTTP 方法命名的方法
- 路径作为第一个参数
- 处理函数作为第二个参数
typescript
import { Elysia } from 'elysia'
new Elysia()
.get('/', '你好,世界!')
.listen(3000)路由
Elysia 中的路径可以分为 3 种类型:
- 静态路径 - 用于定位资源的静态字符串
- 动态路径 - 路径段可以是任何值
- 通配符 - 特定点之前的路径可以是任何内容
参见 路由。
静态路径
静态路径是硬编码的字符串,用于定位服务器上的资源。
ts
import { Elysia } from 'elysia'
new Elysia()
.get('/hello', 'hello')
.get('/hi', 'hi')
.listen(3000)参见 静态路径。
动态路径
动态路径匹配路径的某一部分并捕获其值,以提取额外信息。
要定义动态路径,我们可以使用冒号 : 后跟一个名称。
typescript
import { Elysia } from 'elysia'
new Elysia()
.get('/id/:id', ({ params: { id } }) => id)
.listen(3000)这里,我们使用 /id/:id 创建了一个动态路径。这告诉 Elysia 捕获 :id 路径段的值,例如 /id/1、/id/123、/id/anything。
参见 动态路径。
可选路径参数
我们可以通过在参数名称后添加问号 ? 来使路径参数变为可选。
typescript
import { Elysia } from 'elysia'
new Elysia()
.get('/id/:id?', ({ params: { id } }) => `id: ${id}`)
.listen(3000)参见 可选路径参数。
通配符
动态路径允许捕获单个路径段,而通配符允许捕获路径的其余部分。
要定义通配符,我们可以使用星号 *。
typescript
import { Elysia } from 'elysia'
new Elysia()
.get('/id/*', ({ params }) => params['*'])
.listen(3000)参见 通配符。
练习
让我们回顾一下,并创建 3 个不同类型的路径:
Show answer
- 静态路径
/elysia,响应为"Hello Elysia!" - 动态路径
/friends/:name?,响应为"Hello {name}!" - 通配符路径
/flame-chasers/*,响应为路径的其余部分。
typescript
import { Elysia } from 'elysia'
new Elysia()
.get('/elysia', '你好,Elysia!')
.get('/friends/:name?', ({ params: { name } }) => `你好,${name}!`)
.get('/flame-chasers/*', ({ params }) => params['*'])
.listen(3000)