Fastify 中如何定义路由?

· 约 4 分钟读完 · 第 10 / 127 章

推荐答案

在 Fastify 中,定义路由的基本语法如下:

示例代码

本题详细解读

1. method 参数

method 参数用于指定 HTTP 请求方法,常见的值包括 GET、POST、PUT、DELETE 等。Fastify 支持所有标准的 HTTP 方法。

2. url 参数

url 参数用于定义路由的路径。路径可以是静态的(如 /users),也可以是动态的(如 /users/:id)。动态路径中的参数可以通过 request.params 访问。

3. handler 参数

handler 是一个异步函数,用于处理请求并返回响应。它接收两个参数:

  • request:包含请求的所有信息,如请求头、请求体、查询参数等。
  • reply:用于发送响应,可以设置状态码、响应头、响应体等。

4. 异步处理

Fastify 的 handler 函数通常是异步的,因此可以使用 async/await 语法来处理异步操作。返回的值会自动被序列化为 JSON 并发送给客户端。

5. 路由前缀

Fastify 还支持为路由添加前缀,可以通过 fastify.register 方法来实现:

在这个例子中,路由 /users 的实际路径将是 /api/users。

6. 路由选项

Fastify 的路由定义还支持其他选项,如 schema 用于请求和响应的验证,preHandler 用于在请求处理之前执行中间件等。

在这个例子中,schema 用于验证请求体,确保 name 字段存在且为字符串类型。