Next.js 14使用Nodemailer遇/api/sendEmail 404错误求助
Next.js 14 /api/sendEmail 404 错误排查方案
- 核对API路由文件结构:App Router模式下,API路由必须放在
app/api/sendEmail/route.js(或.ts)目录结构中,不能直接把文件放在app/api/下;如果用Pages Router,文件要放在pages/api/sendEmail.js。 - 确保请求方法匹配:后端路由文件里导出的HTTP方法要和前端axios请求一致。比如前端用POST请求,后端必须导出
POST函数:
// app/api/sendEmail/route.js import nodemailer from 'nodemailer'; export async function POST(request) { // 你的邮件发送逻辑 const data = await request.json(); // ... nodemailer配置与发送代码 return new Response(JSON.stringify({ success: true }), { status: 200 }); }
- 检查axios请求路径:前端请求时用绝对路径
/api/sendEmail,不要用相对路径(比如../api/sendEmail),避免页面层级导致路径错误。示例:
axios.post('/api/sendEmail', emailData) .then(res => console.log(res)) .catch(err => console.error(err));
- 重启开发服务器:修改路由文件后若热更新未生效,停止
npm run dev后重新启动,确保路由被正确加载。 - 验证路由大小写:Next.js路由区分大小写,确保文件名(
sendEmail)和请求路径完全一致,不要出现大小写差异。 - 查看服务器日志:启动开发服务器后,检查控制台是否有
route /api/sendEmail的加载日志,若没有说明路由文件未被识别,需重新核对文件位置。
内容的提问来源于stack exchange,提问作者Elson Timana
相关产品推荐
相关产品推荐

