安装 express 和 body-parser 模块,可以通过以下命令来安装:
npm install express body-parser
然后,创建一个 app.js 文件,输入以下代码:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// 使用 body-parser 解析请求体
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// 模拟一个数据存储,用于保存任务列表
const tasks = [];
// GET 请求,获取任务列表
app.get('/tasks', (req, res) => {
res.json(tasks);
});
// POST 请求,添加新任务
app.post('/tasks', (req, res) => {
const { task } = req.body;
if (!task) {
return res.status(400).json({ error: '任务不能为空' });
}
tasks.push(task);
res.json(tasks);
});
// PUT 请求,修改任务
app.put('/tasks/:id', (req, res) => {
const { id } = req.params;
const { task } = req.body;
if (!task) {
return res.status(400).json({ error: '任务不能为空' });
}
tasks[id] = task;
res.json(tasks);
});
// DELETE 请求,删除任务
app.delete('/tasks/:id', (req, res) => {
const { id } = req.params;
tasks.splice(id, 1);
res.json(tasks);
});
// 监听端口
app.listen(3000, () => {
console.log('应用已启动,监听端口 3000...');
});
代码说明:
- 引入
express和body-parser模块。 - 创建一个
express应用。 - 使用
body-parser解析请求体。 - 定义一个模拟的数据存储,用于保存任务列表。
- 定义一个
GET请求,用于获取任务列表。 - 定义一个
POST请求,用于添加新任务。 - 定义一个
PUT请求,用于修改任务。 - 定义一个
DELETE请求,用于删除任务。 - 监听端口,启动应用。
接下来,可以使用 Postman 等工具来测试接口:
-
发送一个
POST请求,添加一个新任务:POST http://localhost:3000/tasks { "task": "完成 Express 实现增删改查" } -
发送一个
GET请求,获取任务列表:GET http://localhost:3000/tasks -
发送一个
PUT请求,修改任务:PUT http://localhost:3000/tasks/0 { "task": "完成 Express 实现增删改查,已修改" } -
发送一个
DELETE请求,删除任务:DELETE http://localhost:3000/tasks/0
这样就完成了使用 Express 实现简单的增删改查功能。
实现过程中会遇到那些问题
1、请求体的解析
在使用 Express 解析请求体时,需要注意请求体的类型和格式。如果请求体是 JSON 格式的,则需要使用 body-parser 中的 json() 方法进行解析;如果请求体是表单格式的,则需要使用 body-parser 中的 urlencoded() 方法进行解析。
2、路由的定义
在定义路由时,需要注意路由的顺序和参数的类型和格式。如果两个路由的路径匹配程度相似,而且参数的类型和格式也相同,那么需要注意路由的顺序,确保先匹配更具体的路由。
3、错误处理
在处理请求时,需要对可能出现的错误进行处理。例如,当请求体缺少必要的参数时,需要返回 400 错误码;当请求的资源不存在时,需要返回 404 错误码。
4、安全性
在处理请求时,需要对输入的数据进行验证和过滤,确保输入的数据是合法、安全的。例如,可以使用正则表达式对输入的数据进行验证,过滤掉一些不安全的字符,避免 SQL 注入等攻击。
5、数据存储
在实现增删改查功能时,需要考虑数据的存储方式。可以使用内存、文件或数据库等不同的方式进行存储,根据实际需求选择最合适的方式。同时,需要注意数据的一致性和安全性,避免数据被篡改或丢失。