Javascript Node.js错误:Can';t在发送邮件后设置邮件头,有时会出现
我有一个带有post方法和post路由的HTML表单Javascript Node.js错误:Can';t在发送邮件后设置邮件头,有时会出现,javascript,node.js,express,Javascript,Node.js,Express,我有一个带有post方法和post路由的HTML表单 app.post('/', c_emailController.create, c_bookingController.create ); 当我按提交时,我需要向我和客户端[emailController]发送电子邮件,并将数据保存在我的预订集合[bookingController]中,但有时,当我按提交时,会出现以下错误: Can't set headers after they are s
app.post('/',
c_emailController.create,
c_bookingController.create
);
当我按提交时,我需要向我和客户端[emailController]发送电子邮件,并将数据保存在我的预订集合[bookingController]中,但有时,当我按提交时,会出现以下错误:
Can't set headers after they are sent
最奇怪的是:不是每一次,有时发生,有时不发生。你能检查一下我的控制器代码,看看是否有问题吗
我相信这是下一个()的问题
JS小提琴->
OBS:当错误未发生时,代码正在工作我认为问题在于,您两次调用
sendmail
函数,两次调用next
回调
为了避免这种情况,您可以使用library,在library的帮助下,您将在和中发送电子邮件,并且只有在两封电子邮件都发送后才能调用next
var async = require('async');
async.parallel({
alertEmail: function(callback) {
var alertEmailOptions = {
to: "myemail@com",
from: "myemail@com",
subject: "[alert]",
html: "some html",
};
sendgrid.send(alertEmailOptions , callback);
},
confirmEmail: function(callback) {
var confirmationEventOptions = {
to: req.body.email,
from: "reserva@pubcrawlsp.com",
subject: "Reserva - "
html: "SOME HTML",
};
sendgrid.send(confirmationEventOptions, callback);
}
}, function (err, results) {
next();
});
这将停止错误,但这里有一个问题。。当我点击提交时,代码运行,它们返回/(完美正常),但是页面一直在加载,没有停止..没关系,我解决了问题。。哈哈。。非常感谢@Vsevolod