状态码

状态码是服务器处理请求的指示器。

当您访问一个不存在的页面时,您一定听说过臭名昭著的 404 Not Found

那是一个 状态码

默认情况下,Elysia 会对成功的请求返回 200 OK

根据情况,Elysia 还返回许多其他状态码,例如:

  • 400 Bad Request
  • 422 Unprocessable Entity
  • 500 Internal Server Error

您还可以通过在 status 函数中返回您的响应来返回状态码。

typescript
import { Elysia } from 'elysia'

new Elysia()
	.get('/', ({ status }) => status(418, "我是一壶茶'"))
	.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 来区分请求头和响应头。

请参阅 响应头

练习

让我们练习一下我们所学的内容。

  1. Return a 418 Status

    Let's create a GET `/` endpoint that returns 418 status

  2. Create a Redirect

    Redirect a GET `/docs` endpoint to `https://elysiajs.com`

  3. Add Powered By Header

    In GET `/` endpoint, return a custom header `x-powered-by` set to `Elysia`

Show answer
  1. 要将状态码设置为 418 我是一壶茶,我们可以使用 status 函数。
  2. 要将 /docs 重定向到 https://elysiajs.com,我们可以使用 redirect 函数。
  3. 要将自定义头 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)
  • index.ts