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

问题描述 投票:0回答:1
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发送邮件,我已经正确配置了,但是当我将undefined的值记录到控制台时,我可能会得到info的原因?

javascript node.js express nodemailer
1个回答
1
投票

由于存在错误,很可能没有设置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,它将记录错误并返回之前通过其余代码。这类似于their page上的示例。

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