简体   繁体   English

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

[英]ERR_EMPTY_RESPONSE node.js after adding Integer to create entry

I use node.js express and sails.js to build my app.我使用node.js express 和sails.js 来构建我的应用程序。

When I added another input into my view it crashed on save.当我在视图中添加另一个输入时,它在保存时崩溃了。

ERR_EMPTY_RESPONSE 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 in terminal:终端错误:

Error: Can't set headers after they are sent.
at validateHeader (_http_outgoing.js:489:11)
at ServerResponse.setHeader (_http_outgoing.js:496:3) (...)

Model:模型:

 module.exports = {
  attributes: {
    title:{
      type: 'string'
    },
    body:{
      type: 'text'
    },
    kUser:{
      type: 'integer',
      length: '11'
    }
  },
  connection:'MysqlServer'
};

The error Can't set headers after they are sent means that you are trying to do something with your response after it was already sent. Can't set headers after they are sent错误意味着您正在尝试在响应已发送后对其进行处理。

Your problem is that you don't end the flow after sending the response in case of an error in your callback.您的问题是,如果您的回调出现错误,您不会在发送响应后结束流程。
Since you don't, the redirection happens too, but the response was already sent.既然你没有,重定向也会发生,但响应已经发送。

Simply add return to exit the function:只需添加return退出函数:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM