Node.js 通过express.js在浏览器中显示警报

Node.js 通过express.js在浏览器中显示警报,node.js,express,nodemailer,Node.js,Express,Nodemailer,我正在使用express通过nodemailer模块发送电子邮件。 我的代码如下: app.post('/', (req, res) => { const output = ` <p>You have new one contact request</p> <h3>Contact Details</h3> <ul> <li>Name:${req.body.name}</li> <li>Email

我正在使用express通过
nodemailer
模块发送电子邮件。 我的代码如下:

app.post('/', (req, res) => {
const output = `
<p>You have new one contact request</p>
<h3>Contact Details</h3>
<ul>
<li>Name:${req.body.name}</li>
<li>Email:${req.body.email}</li>
</ul>
<h3>Message</h3>
<p>${req.body.message}</p>
`;

// create reusable transporter object using the default SMTP transport
let transporter = nodeMailer.createTransport({
    host: "mail.gmail.com",
    port: 587,
    secure: false, // true for 465, false for other ports
    auth: {
        user: 'mymail@gamil.com', // generated ethereal user
        pass: '2020' // generated ethereal password
    },
    tls: {
        rejectUnauthorized: false
    }
});

// send mail with defined transport object
let mailOptions = {
    from: "mymail@gamil.com", // sender address
    to: "myfriend@gmail.com", // list of receivers
    subject: "the subject", // Subject line
    html: output // html body
};

transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        return console.log(error);
    }
    // , info.res
    console.log("Message sent: %s", info.messageId);
    console.log("Preview URL: %s", nodeMailer.getTestMessageUrl(info));
   res.render('index', { msg: 'email has been sent' });
    res.redirect('back');
});});
然后通过以下代码显示一条消息:

       res.render('index', { msg: 'email has been sent' });
现在,我的目标不是通过前面提到的代码显示文本,而是在警报框中显示文本。 我所尝试的是:

res.render('index','<script>alert("email has been sent")</script>');
res.render('index','alert(“电子邮件已发送”);

但这不起作用。所以有什么想法和解决方案吗?

据我所知,你从后端发送电子邮件

所以,要在浏览器中发出警报,您应该向前端发送一些信号。通过套接字、前端请求或任何其他方式

编辑:

此代码显示来自后端的带有消息的警报

前部(索引.ejs的一部分):


这就是你的意思吗?

@A Ralkov是的,正如你所看到的,它现在由
msg
发送。但我想改为发出警报。要在
nodemailer
验证表单发送后,在browser@A拉尔科夫这行
var isAlert=不匹配。它有语法错误
res.render('index','<script>alert("email has been sent")</script>');
  <script lang="javascript">
    $(document).ready(function () {
      var isAlert = <%= isAlert %>;

      if (isAlert === true) {
        var alertTitle = "<%= alertTitle %>";

        console.log(alertTitle);
        alert(alertTitle);
      }
    })
  </script>
  res.render('index', { isAlert: true, alertTitle: "Oops!" })