Next.js POST接口返回404错误,请求排查原因
Next.js POST接口404错误排查方案
1. 路径名拼写不匹配
你请求的接口是 http://localhost:3000/api/create-users,但你的API文件是 app/api/create-user.ts——复数(create-users)和单数(create-user)的差异直接导致了404,请求路径和文件名必须完全一致。
2. App Router API路由结构错误
Next.js 13+的App Router要求API路由必须放在 app/api/[接口名]/route.ts 结构下:
- 你需要创建
app/api/create-users/route.ts文件(对应/api/create-users路径),而不是直接在app/api下创建单个ts文件。 - 正确的目录结构示例:
app/ api/ create-users/ route.ts // 这里编写POST处理逻辑 users/ page.tsx
3. API函数导出格式错误
在 route.ts 里,POST处理函数必须按规范导出:
import { NextResponse } from 'next/server'; import prisma from '@/prisma/prisma'; export async function POST(request: Request) { const { name, email, password } = await request.json(); const user = await prisma.user.create({ data: { name, email, password } }); return NextResponse.json(user); }
4. 其他排查项
- 重启开发服务器:修改路由结构后,必须重启
npm run dev才能让新路由生效。 - 检查大小写:确保请求URL和文件名的大小写完全一致(Windows系统不区分,但Linux/macOS区分)。
- 验证Prisma客户端:确认
prisma.ts里的客户端实例初始化正常,避免数据库连接问题引发的间接异常。
内容的提问来源于stack exchange,提问作者Stykgwar
相关产品推荐
相关产品推荐

