节点.js错误:发送标头后无法设置标头,有时会出现
Node.js Error: Can't set headers after they are sent, appears sometimes
我有一个带有发布方法的HTML表单和一个帖子路由
app.post('/',
c_emailController.create,
c_bookingController.create
);
当我按提交时,我需要向我和客户发送电子邮件 [emailController],并将数据保存在我的预订集合 [bookingController] 中,但有时,当我按下提交时,会出现此错误:
Can't set headers after they are sent
最奇怪的部分是:不是每次,有时发生,有时不发生。你能检查一下我的控制器代码,看看是否有问题吗?
我相信这是下一个()的问题;。
JS小提琴-> http://jsfiddle.net/a6s7npcg/
OBS:未发生错误时代码工作
我认为问题是你通过调用 sendEmail
函数两次来调用 next
回调两次。
为避免这种情况,您可以使用async
库,借助该库,您将并行发送电子邮件,并仅在发送两封电子邮件后拨打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();
});
相关文章:
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- NodeJS错误-Can't在发送标头后设置标头
- 错误:Can't在从forEach循环发送标头后设置标头
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- PhantomJS(vs nightwatch.js)设置cookie错误
- JavaScript数组值设置错误
- 为 jQuery Datatables ajax 调用设置错误处理程序
- 节点.js设置错误的内容长度.我该如何设置这个
- 客户端将多部分/表单数据请求的文件部分的内容类型设置错误
- 正在尝试部署Meteor应用程序--mup设置错误
- Jquery验证多个复选框设置错误位置
- js的attr函数设置错误的值
- Node.js正在处理未设置错误事件
- url中的Pc名会在IE中设置错误
- Redux表单提交验证不设置错误消息
- jquery设置错误的RequestUrl的问题
- VideoJs广告引用基本设置错误
- 无法推断查询字段以在插入时设置错误
- 如何为页面上的所有图像设置错误图像
- Jqgrid 设置错误 - this.p 未定义