面试题答案
一键面试处理不同HTTP方法的代码结构
在Next.js的API Routes中,处理不同HTTP方法的请求可以通过以下方式:
GET请求
export default function handler(req, res) {
if (req.method === 'GET') {
// 处理GET请求的逻辑
const data = { message: '这是GET请求返回的数据' };
res.status(200).json(data);
} else {
res.status(405).end(); // 方法不允许
}
}
POST请求
export default function handler(req, res) {
if (req.method === 'POST') {
// 获取POST请求体数据
const { body } = req;
// 处理POST请求的逻辑
const responseData = { receivedData: body, message: '这是POST请求处理后返回的数据' };
res.status(200).json(responseData);
} else {
res.status(405).end(); // 方法不允许
}
}
PUT请求
export default function handler(req, res) {
if (req.method === 'PUT') {
// 获取PUT请求体数据
const { body } = req;
// 处理PUT请求的逻辑,通常用于更新资源
const updatedData = { updated: body, message: '这是PUT请求更新后返回的数据' };
res.status(200).json(updatedData);
} else {
res.status(405).end(); // 方法不允许
}
}
DELETE请求
export default function handler(req, res) {
if (req.method === 'DELETE') {
// 处理DELETE请求的逻辑,通常用于删除资源
const deletedMessage = { message: '这是DELETE请求删除资源后返回的信息' };
res.status(200).json(deletedMessage);
} else {
res.status(405).end(); // 方法不允许
}
}
不同方法在业务场景中的应用场景
GET
- 数据获取:用于从服务器获取数据,比如获取文章列表、用户信息等。在前端展示数据时,常常使用GET请求来拉取所需数据。例如,一个博客网站获取所有文章的列表,前端通过向
/api/articles
发送GET请求,后端API处理该请求并返回文章数据。 - 搜索功能:当用户在搜索框输入关键词进行搜索时,前端可以通过GET请求将关键词作为参数传递给后端API,后端根据关键词进行数据查询并返回搜索结果。
POST
- 数据提交:常用于创建新资源,如用户注册、提交表单数据等场景。例如,用户在注册页面填写用户名、密码等信息后,前端将这些数据通过POST请求发送到
/api/register
,后端API接收到数据后进行用户创建操作。 - 上传文件:在需要上传文件(如图片、文档等)的场景中,通常使用POST请求,并设置
Content-Type
为multipart/form-data
,将文件数据作为请求体的一部分发送到服务器进行处理。
PUT
- 数据更新:用于更新现有资源的部分或全部数据。例如,用户修改自己的个人资料,前端将修改后的数据通过PUT请求发送到
/api/user/profile
,后端API根据请求中的数据更新用户的资料信息。 - 版本控制:在一些需要跟踪资源版本变化的系统中,PUT请求可以用于更新资源版本,确保数据的一致性和完整性。
DELETE
- 资源删除:用于删除服务器上的资源,比如删除一篇文章、删除一个用户等。例如,管理员在后台管理系统中删除违规用户,通过向
/api/user/{userId}
发送DELETE请求,后端API根据userId
找到对应的用户并将其从数据库中删除。