我正在构建一个需要电子邮件系统的应用程序,我之前在有效的页面/api/电子邮件中构建了它。
因为它变得越来越大,我想在 app/api/email 上为电子邮件构建一个 api。
我不断收到错误:
- error No HTTP methods exported in 'C:\Users\Nodefion\Desktop\Workspace\_Git_REPOS\secforhire\app\api\mail\route.js'. Export a named export for each HTTP method.
主页 应用程序(组)邮件\page.jsx
"use client"
import React, { useState } from 'react';
function HomePage() {
const [response, setResponse] = useState(null);
const sendEmail = async () => {
try {
const res = await fetch('http://localhost:3000/api/mail', { method: 'GET' });
const data = await res.json();
setResponse(data.message);
} catch (error) {
console.error('Error sending email:', error);
}
};
return (
<div>
<h1>Welcome to My App</h1>
<p>Click the button to send an email:</p>
<button onClick={sendEmail}>Send Email</button>
{response && <p>{response}</p>}
</div>
);
}
export default HomePage;
应用程序 pi\邮件 oute.js
import { nodemailer } from 'nodemailer';
export default async (req, res) => {
if (req.method === 'GET') {
const smtpConfig = {
host: 'smtp.hostinger.com',
port: 465,
secure: true,
auth: {
user: '[email protected]',
pass: 'password',
},
};
const transporter = nodemailer.createTransport(smtpConfig);
const mailOptions = {
from: '[email protected]',
to: '[email protected]',
subject: 'Test Email',
text: 'This is a test email sent from nodemailer.',
};
try {
await transporter.sendMail(mailOptions);
res.status(200).json({ message: 'Email sent successfully!' });
} catch (error) {
console.error('Error sending email:', error);
res.status(500).json({ message: 'Error sending email' });
}
} else {
res.status(405).end(); // Method Not Allowed for non-GET requests
}
};
出于安全原因,我更改了凭据,因此我使用不同的代码在 /page/api/email 上尝试了此操作,并且成功了。
我对 Next.js 还很陌生,但我有些困惑并不断出现错误。
我浏览过互联网,但总是使用我不想要的东西,那就是页面/api/电子邮件。
感谢您的浏览并祝您有美好的一天。
我尝试在不同的论坛上使用人工智能来解决这个问题,但仍然空手而归。
路由处理程序在应用程序路由器中获取一些更新。 查看文档
要使用如下 API 方法创建路由处理程序导出
named
函数:
export async function GET(req, context) {}
export async function POST(req, context) {}
export async function PATCH(req, context) {}
export async function PUT(req, context) {}
export async function DELETE(req, context) {}
export async function OPTIONS(req, context) {}