2015-08-18 146 views
0

我试图在NodeJS中使用nodemailer来实现工作联系表。整个设置实际上工作。只是我无法将回复发回给客户端。我在这里错过了什么?NodeJS - 发送消息时无法response.json

下面是我的代码:

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

+0

什么是MailerComposer - 你还是...? “发送信息:”是否打印? –

+0

@PaulMarrington,MailerComposer来自NodeMailer。发送的消息:250 2.0.0 OK 1438964613 e4sm153473pdd.45 - gsmtp。更新了这篇文章 –

回答

1

发现一个回答我的问题。在我的代码中,变量响应以错误的顺序被调用。通过改变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(); 
});