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
函数两次来调用next
callback。
为避免这种情况,您可以使用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(); });