Next.js 中的路由处理器(Route Handlers)和 API Routes 是用于处理 HTTP 请求的两种机制,但它们在使用场景和功能上有一些区别。
路由处理器是 Next.js 13 及更高版本中引入的新特性,用于处理特定路由的 HTTP 请求。它们通常用于处理客户端和服务器之间的数据交互,类似于传统的 API Routes,但更加灵活和现代化。
// app/api/route.js
export async function GET(request) {
return new Response('Hello, Next.js!');
}
export async function POST(request) {
const data = await request.json();
return new Response(JSON.stringify(data), {
headers: { 'Content-Type': 'application/json' },
});
}
API Routes 是 Next.js 中较早引入的特性,用于创建服务器端 API 端点。它们通常用于处理与数据库交互、第三方 API 调用等后端逻辑。
// pages/api/hello.js
export default function handler(req, res) {
if (req.method === 'GET') {
res.status(200).json({ message: 'Hello, Next.js!' });
} else if (req.method === 'POST') {
const data = req.body;
res.status(200).json(data);
}
}
引入时间:
使用场景:
灵活性:
文件结构:
pages/api
目录下。app/api
目录下。根据你的项目需求,你可以选择使用路由处理器或 API Routes,或者两者结合使用。