Node.js错误:发送后无法设置标题,有时会出现

我有一个post方法的HTML表单和一个postpath

app.post('/', c_emailController.create, c_bookingController.create ); 

当我按提交时,我需要发送一封电子邮件给我和客户端[emailController],并将数据保存在我的预订集合[bookingController],但有时,当我按提交,这个错误出现:

 Can't set headers after they are sent 

最奇怪的部分是:不是每一次,有时会发生,有时不会。 你能看看我的控制器代码,看看有没有问题?

我相信这是一个与next();的问题。

JS FIDDLE – > http://jsfiddle.net/a6s7npcg/

OBS:错误没有发生时代码正在工作

我认为问题是你通过调用sendEmail函数两次来调用nextcallback。

为避免这种情况,您可以使用async库, 并行发送电子邮件,只有在发送两封电子邮件后才能再次拨打电话。

 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(); });