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

Erreur Nextjs 13?:?tentative de lecture de la propriété non définie (lecture des ??en-têtes??)
P粉652495194
P粉652495194 2023-08-31 16:47:14
0
1
628
<p>Je rencontre un problème avec les en-têtes de mon point de terminaison d'API post créé dans Nextjs. </p> <p>Mon point de terminaison est destiné à la soumission du formulaire et je transmets les entrées à mon courrier électronique. Mon code actuel peut envoyer l'e-mail et je le re?ois correctement dans mon e-mail, mais chaque fois que je fais une demande, il renvoie une erreur dans l'en-tête. </p> <pre class="brush:php;toolbar:false;">importer { NextResponse, NextRequest } depuis "suivant/serveur" importer nodemailer depuis "nodemailer" exporter la fonction asynchrone POST (requête?: NextRequest, réponse?: NextResponse) { const formData = attendre request.formData() const emailValue = formData.get("email") const messageValue = formData.get("message") const numberValue = formData.get("numéro_téléphone") si (!messageValue || !numberValue || !emailValue) { return NextResponse.json({ message?: "Veuillez remplir tous les champs obligatoires?!" }, { status?: 400 }) } const transporteur = nodemailer.createTransport({ service : "gmail", authentification?:?{ utilisateur?: process.env.EMAIL, passer?: process.env.PASSWORD, }, à savoir?: { rejeterNon autorisé?: faux, }, }) const mailOptions = { de?: `${emailValue}`, à?: `${process.env.EMAIL}`, sujet?: `Message de la page Contactez-moi ${numberValue} - ${emailValue} `, texte?: `${messageValue}`, } transporter.sendMail(mailOptions, (err, info) => { si (erreur) { return NextResponse.json({ message?: `${err}` }, { status?: 500 }) } return NextResponse.json({ message?: "E-mail envoyé avec succès !" }, { status?: 200 }) }) }</pré> <p>Je ne suis pas s?r de ce que j'ai fait de mal. J'ai lu dans un fil de discussion sur l'exécution de NextResponse dans l'instruction return, mais même cela n'a pas fonctionné. </p> <p>Le message d'erreur que je re?ois?: </p> <pre class="brush:php;toolbar:false;"> - Erreur TypeError?: Impossible de lire la propriété non définie (lecture des "en-têtes") à l'évaluation (webpack-internal:///(sc_server)/./node_modules/next/dist/server/future/route-modules/app-route/module.js:261:61) à process.processTicksAndRejections (node:internal/process/task_queues:95:5)</pre></p>
P粉652495194
P粉652495194

répondre à tous(1)
P粉226413256

Je dirais que le problème est lié à cette question.

Retournez dans vos deux dernières return NextResponse...調(diào)用在transporter.sendMail()回調(diào)內(nèi)部,所以它們不會從POST() fonctions.

Utilisez la capacité de Nodemailer à renvoyer des promesses au lieu d'utiliser les fonctions de rappel...

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

Une autre approche consiste à convertir le rappel du Nodemailer en promesse, même si ce n'est pas assez concis à mon avis

return new Promise((resolve) => {
  transporter.sendMail(mailOptions, (err) => {
    const status = err ? 500 : 200;
    const message = err?.toString() ?? "郵件發(fā)送成功!";
    resolve(NextResponse.json({ message }, { status }));
  });
});
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal