状态
状态码是服务器如何处理请求的指示器。
当您访问一个不存在的页面时,您一定听说过那个臭名昭著的 404 Not Found。
这就是一个 状态码。
默认情况下,对于成功的请求,Elysia 会返回 200 OK。
Elysia 还会根据情况返回许多其他状态码,例如:
- 400 错误请求
- 422 无法处理的实体
- 500 内部服务器错误
你也可以通过使用 status 函数返回你的响应来返回一个状态码。
typescript
import { Elysia } from 'elysia'
new Elysia()
.get('/', ({ status }) => status(418, "我是一个茶apot'"))
.listen(3000)参阅 状态。
重定向
类似地,你也可以通过返回一个 redirect 函数将请求重定向到另一个 URL。
typescript
import { Elysia } from 'elysia'
new Elysia()
.get('/', ({ redirect }) => redirect('https://elysiajs.com'))
.listen(3000)参阅 重定向。
请求头
与状态码和重定向不同,它们可以直接返回,而在你的应用中你可能需要多次设置请求头。
这就是为什么 Elysia 提供了一个 set.headers 对象来设置请求头,而不是返回一个 headers 函数。
typescript
import { Elysia } from 'elysia'
new Elysia()
.get('/', ({ set }) => {
set.headers['x-powered-by'] = 'Elysia'
return '你好,世界'
})
.listen(3000)因为 headers 代表 请求头,Elysia 通过为响应头添加 set.headers 前缀来区分请求头和响应头。
参阅 请求头。
练习
我们来练习一下所学内容。
Show answer
- 要将状态码设置为
418 I'm a teapot,我们可以使用status函数。 - 要将
/docs重定向到https://elysiajs.com,我们可以使用redirect函数。 - 要将自定义请求头
x-powered-by设置为Elysia,我们可以使用set.headers对象。
typescript
import { Elysia } from 'elysia'
new Elysia()
.get('/', ({ status, set }) => {
set.headers['x-powered-by'] = 'Elysia'
return status(418, '你好,Elysia!')
})
.get('/docs', ({ redirect }) => redirect('https://elysiajs.com'))
.listen(3000)