16 处理请求和响应
在上一个章节中,我们学习了如何创建和使用自定义中间件。自定义中间件是 Express.js 中的一个强大特性,它允许我们在请求处理流程中插入自定义逻辑。在本章的开始部分,我们将着重于处理客户端发来的 GET 请求。
6.1 处理GET请求
什么是GET请求?
GET
请求是最常用的 HTTP 方法之一,主要用于从服务器获取数据。当用户在浏览器中输入一个 URL 并访问时,浏览器会发送一个 GET
请求到指定的服务器。我们将在本节中学习如何在 Express.js 中处理这些请求。
设置路由以处理GET请求
在 Express.js 中,我们可以通过 app.get()
方法来定义一个处理 GET 请求的路由。下面是一个基本的示例:
1 | const express = require('express'); |
在这个示例中,当用户访问 http://localhost:3000/hello
时,服务器会返回字符串 Hello, World!
。
如何从请求中获取参数
在 GET 请求中,我们常常需要从请求中提取参数。Express.js 提供了 req.query
对象来方便地访问查询参数。查询参数是 URL 中以 ?
开始的部分。例如,在 URL http://localhost:3000/greet?name=John
中,name
是查询参数。
以下是一个处理查询参数的示例:
1 | app.get('/greet', (req, res) => { |
当用户访问 http://localhost:3000/greet?name=John
时,服务器会返回 Hello, John!
。
路由参数
除了查询参数,Express 还支持路由参数,它们在 URL 路径中定义。我们可以在路由中使用冒号(:
)来定义动态参数。以下是一个处理路由参数的示例:
1 | app.get('/users/:id', (req, res) => { |
如果用户访问 http://localhost:3000/users/123
,服务器会返回 User ID is 123
。
处理GET请求的案例
接下来,我们将结合前面的知识,创建一个更复杂的 GET 请求处理示例。我们将构建一个简单的 API,返回用户的信息。
1 | let users = [ |
现在,如果我们访问 http://localhost:3000/api/users
,将返回所有用户的 JSON 数据。如果我们请求 http://localhost:3000/api/users/1
,将获取到 Alice 的信息。如果请求的 ID 不存在,服务器将返回 404 状态和相应信息。
结尾
在本节中,我们了解了如何处理 GET 请求,包括如何使用查询参数和路由参数。掌握这些知识会帮助我们开发出更灵活和功能丰富的 Web 应用程序。
在下一节中,我们将继续研究如何处理 POST 请求,这是与处理数据提交密切相关的内容。
16 处理请求和响应