NextJS生产环境API请求超时问题求助(App Router+MongoDB)
NextJS 14.0.1(App Router)生产环境API路由超时问题求助
技术栈
- NextJS 14.0.1 + App Router
- MongoDB + Mongoose
问题现象
生产环境中所有涉及数据库操作的API路由请求均超时,仅静态着陆页可正常访问;本地开发环境完全正常,此前应用运行无异常。通过Postman请求接口时,响应时间超过10秒,已触发Netlify/Vercel的默认超时限制。浏览器控制台无报错,网络请求检查无有效信息。
/api/leads端点代码(创建线索)
// app/api/leads/route.js import { NextResponse } from "next/server"; import connectMongo from "@/libs/mongoose"; import Lead from "@/models/Lead"; export async function POST(req) { console.time("MongoDB Connection"); await connectMongo(); console.timeEnd("MongoDB Connection"); console.time("Request JSON Parsing"); const body = await req.json(); console.timeEnd("Request JSON Parsing"); if (!body.email) { return NextResponse.json({ error: "Email is required" }, { status: 400 }); } try { console.time("Finding Lead"); const lead = await Lead.findOne({ email: body.email }); console.timeEnd("Finding Lead"); if (!lead) { console.time("Creating Lead"); await Lead.create({ email: body.email }); console.timeEnd("Creating Lead"); } console.time("Sending Response"); const response = NextResponse.json({}); console.timeEnd("Sending Response"); return response; } catch (e) { console.error("Database operation failed", e); console.time("Sending Error Response"); const errorResponse = NextResponse.json( { error: e.message }, { status: 500 } ); console.timeEnd("Sending Error Response"); return errorResponse; } }
端点计时日志数据
- MongoDB Connection: 880.541ms
- Request JSON Parsing: 0.913ms
- Finding Lead: 556.57ms
- Sending Response: 1.31ms
已完成的排查操作
- 检查近期代码提交记录,未发现相关变更
- 将主分支回滚至历史正常提交并重新部署,问题依旧
- 本地连接生产数据库,操作无异常
- 通过HTTPS ngrok隧道运行本地应用,API请求正常工作
- 确认仅涉及数据库操作的请求受影响,静态资源无问题
- 分别部署至Vercel和Netlify,问题表现一致
- 为端点内所有操作添加计时日志,结果如上
- 新建MongoDB集群并重新连接,问题依旧
编辑补充:新增一份计时日志截图
恳请各位提供后续排查及解决方向。
内容的提问来源于stack exchange,提问作者user24278158
相关产品推荐
相关产品推荐

