我正在尝试使用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
答案 0 :(得分: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();
});