我使用node.js express和sails.js来构建我的应用程序。
当我在视图中添加了另一个输入时,它在保存时崩溃了。
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'
};
答案 0 :(得分:2)
错误Can't set headers after they are sent
表示您在响应完成后尝试对其进行操作。
您的问题是,如果您的回叫出错,则在发送回复后不会结束流程 由于您没有,重定向也会发生,但响应已经发送。
只需添加return
即可退出该功能:
if(err){
return res.send(500, {error: 'Database Error'});
}
res.redirect('/knowlege/list');