当前位置: 首页 > 知识库问答 >
问题:

Nodemailer-重定向到成功页面

颜华池
2023-03-14

尝试在发送电子邮件后从node.js和express.js页面重定向我的页面。消息被发送,我在我的终端中得到了console.log()(使用morgan进行日志记录),但它没有将我重定向到成功页面,并且我在浏览器中没有得到一个console.log错误。它只是停止,然后我得到一个本地主机没有发送任何数据错误。以前从未使用过nodemailer,但我设法发送了消息,只是在重定向到新页面时遇到了问题。

谢谢!!

//成功html代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>

    <h1>Success</h1>

  </body>
</html>

//窗体框

  <form action="/contact" id="contact-form" method="post" role="form">
    <fieldset>
      <label for="name">Name &#42;</label>
      <input id="name" name="name" type="text" placeholder="Your name" required="required">
      <label for="email">Email &#42;</label>
      <input id="email" name="email" type="text" placeholder="Your email" required="required">
      <label for="message">Message &#42;</label>
      <textarea id="message" name="message" placeholder="Enter your message here" rows="3" required="required"></textarea>
      <button type="submit">Submit</button>
    </fieldset>
  </form>

//成功HTML路由

 app.get('/success', function(req,res){
  res.sendFile(__dirname + '/views' + '/success.html');
});

//NodeMailer//从联系人表单发布路由

app.post('/contact', function (req, res) {
  let mailOpts, smtpTrans;
  smtpTrans = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: 465,
    secure: true,
    auth: {
      user: process.env.GMAIL_USER,
      pass: process.env.GMAIL_PASS
    }
  });
  mailOpts = {
    from: req.body.name + ' &lt;' + req.body.email + '&gt;',
    to: process.env.GMAIL_USER,
    subject: 'New message from Portfolio site',
    text: `${req.body.name} (${req.body.email}) says: ${req.body.message}`
  };
  smtpTrans.sendMail(mailOpts, function (error, res) {
    if (error) {
      return console.log(error);
    }
    else {
      console.log('success');
      res.redirect('/success');
    }
  });
});

共有1个答案

闻人树
2023-03-14

不知道你是否仍然坚持这个问题,但以防万一,下面的工作为我。

app.post('/contact', function (req, res) {
  let mailOpts, smtpTrans;
  smtpTrans = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: 465,
    secure: true,
    auth: {
      user: process.env.GMAIL_USER,
      pass: process.env.GMAIL_PASS
    }
  });
  mailOpts = {
    from: req.body.name + ' &lt;' + req.body.email + '&gt;',
    to: process.env.GMAIL_USER,
    subject: 'New message from Portfolio site',
    text: `${req.body.name} (${req.body.email}) says: ${req.body.message}`
  };
  smtpTrans.sendMail(mailOpts, function (error, res) {
    if (error) {
      return console.log(error);
    }
    else {
      console.log('success');
      // NOT HERE res.redirect('/success');
    }
  });
  res.redirect('/success'); // I MOVED THE REDIRECTING CODE HERE AND WORKED
});
 类似资料:
  • 下面是我的app.js代码,Login.js登录页面位于http://localhost:3000/Login,所以如果用户成功登录,我如何将用户重定向到http://localhost:3000/home page,它加载了“homeComponent.jsx”。为了简洁起见,我省略了“homeComponent.jsx”的代码

  • 我在模态窗口中有登录表单。成功登录后,用户被重定向到< code>/页面。我正试图找到一种方法,在登录后留在联系页面或另一个页面。如何做到这一点?我的代码是:

  • 问题内容: 我知道之前曾有人问过这个问题,但是我在这里面临一个特殊的问题。 我使用Spring Security 3.1.3。 我的Web应用程序中有3种可能的登录案例: 通过登录页面登录:确定。 通过受限页面登录:也可以。 通过非受限页面登录:不好,…每个人都可以访问“产品”页面,并且用户可以在登录后发表评论。因此,同一页面中包含一个登录表单,以允许用户进行连接。 情况3)的问题是我无法设法将用

  • 我知道这个问题以前有人问过,但我现在面临一个特殊的问题。 我使用spring security 3.1.3。 我的web应用程序中有3种可能的登录情况: 通过登录页登录:确定。 通过受限页面登录:也可以。 通过非受限页面登录:不确定...每个人都可以访问“产品”页面,如果用户已经登录,他可以发表评论。因此登录表单包含在同一页面中,以便允许用户进行连接。 案例3)的问题是,我无法将用户重定向到“产品

  • 这是春虫吗?由于logout-success-url已设置且不安全,因此在到达logout-success-url后,似乎不应将用户重定向到无效的会话url。 日志如下所示:

  • 我有一个登录屏幕,其中将发生一些用户输入验证,用户将被验证,最后重定向到欢迎屏幕。 以下是