我正在构建一个需要电子邮件系统的应用程序,我之前在pages/API/email中构建了它。
由于它变得越来越大,我想在app/API/email上为电子邮件构建一个API。
我一直得到一个错误:- error No HTTP methods exported in 'C:\Users\Nodefion\Desktop\Workspace\_Git_REPOS\test\app\api\mail\route.js'. Export a named export for each HTTP method.
主页app(group)\email\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;
app\api\mail\route.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/电子邮件。
感谢您的关注,祝您有美好的一天。
我试着在不同的论坛上寻找使用人工智能,仍然保持空手而归。
1条答案
按热度按时间gstyhher1#
路由处理程序在应用程序路由器中获得一些更新。See the docs
要创建路由处理程序,请使用API方法导出
named
函数,如下所示: