为什么 'info' 对象未定义?

Why the 'info' object is undefined?

transporter.sendMail(mailOptions,(error,info)=>{
   if(error) console.log(error)
   console.log('Message Sent: '+info.messageId)
   console.log('Preview URL: '+nodemailer.getTestMessageUrl(info))
   res.redirect('contacts',{msg:'Email has been sent'})
});

我正在使用 nodemailer 发送邮件,我已经正确配置了它,但是当我记录 [=14= 的值时我收到 undefined 的可能原因是什么? ]进入控制台?

很可能 info 没有被设置,因为有一个错误。您必须通过查看他们的 source.

来确认

但是,您可以通过稍微更改代码来解决这个问题,如下所示:

transporter.sendMail(mailOptions,(error, info)=>{
    if (error) {
       return console.log(error);
    }
    console.log('Message Sent: '+info.messageId)
    console.log('Preview URL: '+nodemailer.getTestMessageUrl(info))
    res.redirect('contacts',{msg:'Email has been sent'})
});

这样,如果设置了 error,它将记录错误和 return,然后再执行其余代码。这类似于 their page.

上的示例