面试题答案
一键面试以下是在Node.js中使用Express框架处理常见HTTP方法的示例代码及每种方法在RESTful API设计中的作用和应用场景:
1. 初始化项目
首先确保安装了Node.js,然后创建一个新目录,进入目录并执行以下命令初始化项目:
npm init -y
接着安装Express:
npm install express
2. 处理HTTP方法示例代码
创建一个 app.js
文件,内容如下:
const express = require('express');
const app = express();
const port = 3000;
// 用于解析JSON数据,这样才能在POST、PUT请求体中获取JSON格式数据
app.use(express.json());
// GET请求
app.get('/users', (req, res) => {
// 这里模拟从数据库获取用户列表
const users = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' }
];
res.json(users);
});
// POST请求
app.post('/users', (req, res) => {
// 假设req.body包含新用户的数据
const newUser = req.body;
// 这里可以将新用户数据保存到数据库
res.status(201).json(newUser);
});
// PUT请求
app.put('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
// 假设req.body包含更新后的用户数据
const updatedUser = req.body;
// 这里可以根据userId在数据库中找到对应的用户并更新数据
res.json(updatedUser);
});
// DELETE请求
app.delete('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
// 这里可以根据userId在数据库中找到对应的用户并删除数据
res.sendStatus(204);
});
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
3. 每种方法在RESTful API设计中的作用和应用场景
GET
- 作用:用于获取资源。通常用于从服务器检索数据,不应该对服务器上的数据进行修改。
- 应用场景:
- 获取用户列表,如
GET /users
。 - 获取特定用户信息,如
GET /users/1
。 - 获取文章列表,如
GET /articles
。
- 获取用户列表,如
POST
- 作用:用于创建新资源。请求体中包含要创建的资源的数据。
- 应用场景:
- 创建新用户,如
POST /users
并在请求体中包含新用户的姓名、邮箱等信息。 - 提交新订单,如
POST /orders
并在请求体中包含订单详情。
- 创建新用户,如
PUT
- 作用:用于更新资源。请求体中包含完整的更新后资源的数据,覆盖原有的数据。
- 应用场景:
- 更新用户信息,如
PUT /users/1
并在请求体中包含更新后的用户所有信息。 - 更新产品信息,如
PUT /products/1
并在请求体中包含产品的新名称、价格等。
- 更新用户信息,如
DELETE
- 作用:用于删除资源。
- 应用场景:
- 删除用户,如
DELETE /users/1
。 - 删除文章,如
DELETE /articles/1
。
- 删除用户,如