无法在Next.js应用程序路由器中访问API - 找不到404 我是Next.js的新手,我正在尝试使用API路线发送电子邮件,但是我面临着无法访问API的问题。 我有以下结构: API路线:SRC/APP/API/SEND-MAIL/路线...

问题描述 投票:0回答:1

前端组件:src/app/unitygame.tsx

当我尝试通过到
    "https://localhost:3000/api/send-mail"
  • 手动访问API时,我发现一个404错误。 我仔细检查了API路由在正确的目录中,并且文件使用后处理程序正确设置。我还确认我正在Next.js中使用该应用程序路由器,但是该路线似乎无法访问。
  • 有人遇到了类似的问题,还是可以指导我引起这个问题的原因?
  • // src/app/api/send-mail/route.ts import { NextResponse } from 'next/server'; import nodemailer from 'nodemailer'; export async function POST(req: Request) { const { recipient, body } = await req.json(); if (!recipient || !body) { return NextResponse.json({ error: 'Recipient and body are required' }, { status: 400 }); } const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: parseInt(process.env.SMTP_PORT || '587'), secure: process.env.SMTP_PORT === '465', auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS, }, }); const mailOptions = { from: process.env.SMTP_USER, to: recipient, subject: 'Test Email', text: body, }; try { await transporter.sendMail(mailOptions); return NextResponse.json({ message: 'Email sent successfully' }); } catch (error) { return NextResponse.json({ error: 'Internal Server Error' }, { status: 500 }); } }
当我尝试从客户端向API发送请求时,我将无法到达端点。

当您尝试从浏览器访问路由时,您会得到

404 Not Found

,因为您没有从

GET

文件导出

route.ts
函数。另外,从应用程序的前端点击API端点时,您需要在请求选项中添加
method: "POST"

阅读有关
javascript reactjs next.js
1个回答
0
投票
及其在

next.js路由文档中的工作方式


您可以使用REST服务(例如postman
thunder客户
)测试
POST

API端点

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.