添加Integer以创建条目后的ERR_EMPTY_RESPONSE node.js

时间:2017-10-22 20:47:01

标签: javascript mysql node.js

我使用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'
};

1 个答案:

答案 0 :(得分:2)

错误Can't set headers after they are sent表示您在响应完成后尝试对其进行操作。

您的问题是,如果您的回叫出错,则在发送回复后不会结束流程 由于您没有,重定向也会发生,但响应已经发送。

只需添加return即可退出该功能:

if(err){
    return res.send(500, {error: 'Database Error'});
}
res.redirect('/knowlege/list');