推荐答案
在 Fastify 中,定义路由处理函数的方式是通过 fastify.route()
方法或 fastify.get()
、fastify.post()
等快捷方法。以下是一个简单的示例:
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ---- --- -- -- ------------- -- --- --------- ---------------- ----- --------- ------ -- - ------ - -------- ------- --------- -- --- -- -- --------------- -------- --------------- ------- ------- ---- ---------- -------- ----- --------- ------ -- - ------ - -------- ----- --------- -------------- -- - --- -- ----- -------------------- ----- -- - -- ----- - ----------------------- ---------------- - ---
本题详细解读
1. 使用 fastify.get()
、fastify.post()
等快捷方法
Fastify 提供了类似于 fastify.get()
、fastify.post()
、fastify.put()
等快捷方法来定义不同 HTTP 方法的路由处理函数。这些方法的第一个参数是路由的 URL,第二个参数是一个异步函数,用于处理请求并返回响应。
例如:
fastify.get('/user/:id', async (request, reply) => { const userId = request.params.id; return { userId }; });
2. 使用 fastify.route()
方法
fastify.route()
方法允许你以更灵活的方式定义路由。它接受一个对象作为参数,该对象包含 method
、url
和 handler
等属性。
method
: 指定 HTTP 方法,如GET
、POST
、PUT
等。url
: 指定路由的 URL。handler
: 指定处理请求的异步函数。
例如:
-- -------------------- ---- ------- --------------- ------- ------ ---- -------------- -------- ----- --------- ------ -- - ----- ------ - ------------------ ----- ---- - ------------- ------ - ------- ---- -- - ---
3. 异步处理函数
Fastify 的路由处理函数通常是异步的,使用 async/await
语法来处理异步操作。这使得代码更加简洁和易于维护。
4. 请求和响应对象
request
: 包含客户端请求的所有信息,如request.params
(路由参数)、request.query
(查询参数)、request.body
(请求体)等。reply
: 用于发送响应给客户端,可以通过reply.send()
发送响应数据。
5. 启动服务器
最后,使用 fastify.listen()
方法启动服务器,并指定监听的端口号。