gpt4 book ai didi

javascript - 从 Node.Js 和 Express.Js 中的导入函数返回响应

转载 作者:行者123 更新时间:2023-11-30 14:58:03 25 4
gpt4 key购买 nike

我有一个 express.js post 方法,我在其中调用代码如下的函数:

    module.exports.sendEmail = function(to,subject,message){
var transporter = nodemailer.createTransport({
service : 'gmail',
auth:{
user : "",
pass : ""
}
});
var mailOptions = {
from:'findadriver9@gmail.com',
to: to,
subject:subject,
html:message
};
return transporter.sendMail(mailOptions).then(function(data){
var result ={
success:true,
message:"Email Sent"
}
return result;
}).catch(function(err){
var err={
success:false
};
return err;
});
}

如何调用函数,以便根据成功和失败定义响应?

var response = sendEmail.sendEmail(req.body.empemail,subject,details);
res.send(response);

我尝试了上述方法,但由于 Node.js 的异步特性,我没有收到任何响应。

最佳答案

修改你的 sendEmail 函数,添加一个额外的参数作为回调函数,如下所示

module.exports.sendEmail = function(to,subject,message,cb){
var transporter = nodemailer.createTransport({
service : 'gmail',
auth:{
user : 'demo.user@mail.com',
pass : 'demo#password'
}
});
var mailOptions = {
from:'demo.user@mail.com',
to: to,
subject:subject,
html:message
};
return transporter.sendMail(mailOptions).then(function(data){
var result ={
success:true,
message:"Email Sent"
}
cb(result);
}).catch(function(err){
var err={
success:false
};
cb(err);
});
}

这里,这个函数不会返回任何结果,但是在工作完成后它会将结果发送给回调函数。

下面调用这个函数

  sendEmail.sendEmail(req.body.empemail,subject,details,function(result){
res.send(result);
});

关于javascript - 从 Node.Js 和 Express.Js 中的导入函数返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46947886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com