我使用 Node.js Express 和 sails.js 来构建我的应用程序。
当我向 View 中添加另一个输入时,它在保存时崩溃了。
ERR_EMPTY_RESPONSE
create: function(req, res){
var title = req.body.title;
var body = req.body.body;
var kUser = req.body.kUser;
Knowlege.create({title:title, body:body, kUser:kUser}).exec(function(err){ // kUser:kUser seems to be the problem
if(err){
res.send(500, {error: 'Database Error'});
}
res.redirect('/knowlege/list');
});
终端错误:
Error: Can't set headers after they are sent.
at validateHeader (_http_outgoing.js:489:11)
at ServerResponse.setHeader (_http_outgoing.js:496:3) (...)
型号:
module.exports = {
attributes: {
title:{
type: 'string'
},
body:{
type: 'text'
},
kUser:{
type: 'integer',
length: '11'
}
},
connection:'MysqlServer'
};
最佳答案
错误发送后无法设置 header
意味着您在发送响应后尝试对其执行某些操作。
您的问题是,如果回调中出现错误,您在发送响应后不会结束流程。
由于您不这样做,因此也会发生重定向,但响应已发送。
只需添加 return
即可退出该函数:
if(err){
return res.send(500, {error: 'Database Error'});
}
res.redirect('/knowlege/list');
关于javascript - 添加 Integer 创建条目后的 ERR_EMPTY_RESPONSE node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46879017/