NodeJS-Express联系表单模板刷新在同一部分中

问题描述 投票:0回答:1

我提交联系表格时遇到一些问题。我在NodeJS-Express中使用Nodemailer。

一切正常,只是我的联系表单位于模板的底部,在提交表单并使用res.render(带有“发送电子邮件”消息)之后,模板从顶部重新加载,这不是非常用户友好。

知道如何使用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})
        });
node.js express contact-form nodemailer
1个回答
1
投票

基本上你不能使用res.render而不重新渲染,因为res本身意味着服务器会给你新的响应,这意味着闪烁。

您可以删除res.render并将e.preventDefault()添加到POST表单,以防止页面重新加载。

由于transporter.sendMail的唯一目的是记录消息,只需将其添加到消息中即可。

© www.soinside.com 2019 - 2024. All rights reserved.