NodeJS - Nodemailer无法响应.消息发送时的Json

NodeJS - Nodemailer not able to response.json when message sent

本文关键字:Json 消息 响应 Nodemailer NodeJS      更新时间:2023-09-26

我试图在NodeJS中使用nodemailer实现工作联系表单。整个设置实际上是有效的。只是我无法将响应发送回客户端。我遗漏了什么?

下面是我的代码:

JS

app.post('/contact', function(request,response){
    var mailOptions = {
        from: request.body.email, 
        to: user,
        subject: request.body.names, 
        generateTextFromHTML: true,
        html: request.body.message 
    }
    smtpTransport.sendMail(mailOptions, function(error, response){
        if(error){
            console.log(error);
        }else{
            console.log("Message sent: " + response.message);
            response.json(response.message);
        }
        smtpTransport.close();
    });
});
错误:

TypeError: undefined is not a function at MailerComposer.returnCallback,

指向行代码response.json(response.message);

消息发送结果:250 2.0.0 OK 1438964613 e4sm153473pdd。45 - gsmtp

找到了我问题的答案。从我的代码中,变量响应被以错误的顺序调用。通过改变smtpTransport函数内部的变量来解决这个问题。

答:

smtpTransport.sendMail(mailOptions, function(error, res){
    if(error){
        console.log(error);
    }else{
        console.log("Message sent: " + res.message);
        response.json(res.message);
    }
    smtpTransport.close();
});