Обновление шаблона контактной формы NodeJS-Express в том же разделе - PullRequest
0 голосов
/ 10 марта 2019

У меня небольшая проблема с отправкой моей контактной формы. Я использую Nodemailer в NodeJS-Express.

Все работает нормально, за исключением того, что моя контактная форма находится внизу шаблона, и после отправки формы и использования res.render (с сообщением " email sent ") шаблон перезагружается сверху, что не очень удобно для пользователя.

Любая идея, как я могу использовать res.render и остаться в нижней части шаблона.

Заранее спасибо

 <form method="POST" action="send">
      <label for="fname">First Name</label>
      <input type="text" id="fname" name="firstname" placeholder="Your name..">

      <label for="lname">Last Name</label>
      <input type="text" id="lname" name="lastname" placeholder="Your last name..">

      <label for="message">Message</label>
      <textarea id="message" name="message" placeholder="Write something.." style="height:200px"></textarea>

      <input type="submit" value="Submit">

и app.js

transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            return console.log(error);
        }
        var sentmsg ="email was sent";
        console.log('Message %s sent: %s', info.messageId, info.response);
        res.render("website3dartist", {sentmsg: sentmsg})
        });

1 Ответ

1 голос
/ 10 марта 2019

По существу Вы не можете использовать res.render без повторного рендеринга, поскольку res сам по себе означает, что сервер выдаст вам новый ответ, что означает мигание.

Вы можете удалить res.render и добавить e.preventDefault() в форму POST, предотвращая перезагрузку страницы.

Поскольку единственной целью transporter.sendMail является регистрация сообщения, просто добавьте его к ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...