国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Nextjs 13-Fehler: Versuch, die Eigenschaft von undefiniert zu lesen (liest ?Header')
P粉652495194
P粉652495194 2023-08-31 16:47:14
0
1
629
<p>Ich habe ein Problem mit den Headern meines in Nextjs erstellten Post-API-Endpunkts. </p> <p>Mein Endpunkt dient der Formularübermittlung und ich leite die Eingabe an meine E-Mail weiter. Mein aktueller Code kann die E-Mail senden und ich erhalte sie problemlos per E-Mail, aber jedes Mal, wenn ich eine Anfrage stelle, wird ein Fehler im Header zurückgegeben. </p> <pre class="brush:php;toolbar:false;">import { NextResponse, NextRequest } from "next/server" Nodemailer aus ?Nodemailer“ importieren Asynchrone Funktion exportieren POST(Anfrage: NextRequest, Antwort: NextResponse) { const formData = Warten auf request.formData() const emailValue = formData.get("email") const messageValue = formData.get("message") const numberValue = formData.get("phone_number") if (!messageValue || !numberValue || !emailValue) { return NextResponse.json({ Nachricht: "Bitte füllen Sie alle erforderlichen Felder aus!" }, { Status: 400 }) } const transporter = nodemailer.createTransport({ Dienst: "Google Mail", Authentifizierung: { Benutzer: process.env.EMAIL, pass:process.env.PASSWORD, }, TLS: { RejectUnauthorized: falsch, }, }) const mailOptions = { von: ?${emailValue}“, an: `${process.env.EMAIL}`, Betreff: ?Nachricht von der Kontaktseite ${numberValue} - ${emailValue}“, Text: ?${messageValue}“, } transporter.sendMail(mailOptions, (err, info) => { if (irre) { return NextResponse.json({ message: `${err}` }, { status: 500 }) } return NextResponse.json({ Nachricht: "E-Mail erfolgreich gesendet!" }, { Status: 200 }) }) }</pre> <p>Ich bin mir nicht sicher, was ich falsch gemacht habe. Ich habe in einem Thread darüber gelesen, dass NextResponse in der Return-Anweisung ausgeführt werden soll, aber selbst das hat nicht funktioniert. </p> <p>Die Fehlermeldung, die ich erhalte: </p> <pre class="brush:php;toolbar:false;"> - Fehler TypeError: Eigenschaft von undefiniert kann nicht gelesen werden (lesen von 'headers') bei eval (webpack-internal:///(sc_server)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:261:61) bei process.processTicksAndRejections (node:internal/process/task_queues:95:5)</pre></p>
P粉652495194
P粉652495194

Antworte allen(1)
P粉226413256

我會(huì)說(shuō)問(wèn)題與這個(gè)問(wèn)題有關(guān)。

你最后兩個(gè)return NextResponse...調(diào)用在transporter.sendMail()回調(diào)內(nèi)部,所以它們不會(huì)從POST()函數(shù)中返回。

利用Nodemailer的返回promise的能力,而不是使用回調(diào)函數(shù)...

try {
  await transporter.sendMail(mailOptions);
  return NextResponse.json(
    { message: "郵件發(fā)送成功!" },
    { status: 200 },
  );
} catch (err) {
  return NextResponse.json({ message: err.toString() }, { status: 500 });
}

另一種方法是將Nodemailer的回調(diào)轉(zhuǎn)換為promise,盡管在我看來(lái)這樣做不夠簡(jiǎn)潔

return new Promise((resolve) => {
  transporter.sendMail(mailOptions, (err) => {
    const status = err ? 500 : 200;
    const message = err?.toString() ?? "郵件發(fā)送成功!";
    resolve(NextResponse.json({ message }, { status }));
  });
});
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage