ExpressJS - HTTP 方法
Express.js - 处理 HTTP 请求方法
Section titled “Express.js - 处理 HTTP 请求方法”在 Web 应用程序中,HTTP 方法(或动词)定义了客户端希望对特定资源执行的操作。Express 提供了一种清晰、声明式的方式来处理应用程序中每个路由的不同方法。
RESTful API 中的核心 HTTP 方法
Section titled “RESTful API 中的核心 HTTP 方法”虽然有许多 HTTP 方法,但在构建 RESTful API 时,以下是最常用的几种:
| 方法 | 操作 | 描述 |
|---|---|---|
| GET | 检索 | 请求指定资源的表示。GET 请求应该是安全的和幂等的,这意味着它们只检索数据,不产生副作用。 |
| POST | 创建 | 向指定资源提交一个实体,通常导致服务器上的状态改变或新资源创建。 |
| PUT | 更新/替换 | 用请求负载替换整个目标资源。如果资源不存在,则可能会创建。 |
| PATCH | 部分更新 | 对资源应用部分修改。当你只需要更新对象中的几个字段时,这比 PUT 更受推荐。 |
| DELETE | 删除 | 删除指定资源。 |
在 Express 中实现方法处理程序
Section titled “在 Express 中实现方法处理程序”Express 在 app 对象上提供了与每个 HTTP 动词相对应的直接方法:app.get()、app.post()、app.put()、app.patch() 和 app.delete()。
让我们创建一个示例,为根路径 (/) 上的每个常见方法定义一个处理程序。
代码示例:src/index.js
Section titled “代码示例:src/index.js”import express from 'express';
const app = express();const PORT = 3000;
// 用于解析 JSON 请求体的中间件。这是 `body-parser` 的现代替代方案。app.use(express.json());
// GET:检索数据app.get('/', (req, res) => { res.status(200).json({ message: 'GET request received. Welcome to the API!' });});
// POST:创建数据app.post('/', (req, res) => { console.log('Request body:', req.body); res.status(201).json({ message: 'POST request received.', data: req.body });});
// PUT:替换数据app.put('/', (req, res) => { res.status(200).json({ message: 'PUT request received. Resource updated.' });});
// PATCH:部分更新数据app.patch('/', (req, res) => { res.status(200).json({ message: 'PATCH request received. Resource partially updated.' });});
// DELETE:删除数据app.delete('/', (req, res) => { res.status(200).json({ message: 'DELETE request received. Resource deleted.' });});
app.listen(PORT, () => { console.log(`Server is running at http://localhost:${PORT}`);});测试您的端点
Section titled “测试您的端点”使用 npm run dev 运行服务器后,您需要一个像 Postman 或 Insomnia 这样的 API 客户端来测试 GET 以外的方法。
- 测试 GET: 在您的浏览器中打开
http://localhost:3000/。您将看到 GET 请求的 JSON 响应。 - 测试 POST: 在您的 API 客户端中,创建一个新请求。
- 将方法设置为 POST。
- 将 URL 设置为
http://localhost:3000/。 - 转到 ‘Body’ 选项卡,选择 ‘raw’,然后从下拉列表中选择 ‘JSON’。
- 输入一个 JSON 对象,例如
{ "name": "My New Item" }。 - 发送请求。您将收到
201 Created状态和一条确认消息。
- 测试 PUT、PATCH 和 DELETE: 对其他方法遵循类似的过程。在您的 API 客户端中设置方法类型,并将请求发送到
http://localhost:3000/。您将看到每种方法对应的消息。
- 忘记
express.json(): 如果您在 POST 或 PUT 请求中尝试访问req.body而不使用app.use(express.json())中间件,那么req.body将是undefined。这是初学者非常常见的错误。 - 将 GET 用于修改状态的操作: GET 请求绝不应修改服务器上的数据。始终使用 POST、PUT、PATCH 或 DELETE 来执行创建、更新或删除资源的操作。