将记录通过节点插入MySQL数据库时出错

时间:2015-09-08 08:34:38

标签: javascript mysql node.js express

我是Node的新手,并尝试开发一些初始应用程序。我目前正通过Node将记录插入数据库(MySQL)。我的帖子方法就像

router.post('/add',function(req,res){
    connection.connect();
    var firstName = req.body.FirstName;
    var lastName = req.body.LastName;
    students.push({
        //id: studentList.length+1,
        FirstName: firstName,
        LastName: lastName
    });
    var post  = {FirstName: firstName, LastName: lastName};
    connection.query('INSERT INTO tblstudent VALUES ? ', post,function(err,result){
        if (err) {
                res.send("There was a problem adding the information to the database.");
            }
    });
    res.redirect('/');
    connection.end();
});

其中Id是另一列但自动递增,所以我尝试插入记录。我遇到以下错误。

enter image description here

1 个答案:

答案 0 :(得分:1)

  

错误:发送后无法设置标头

此错误表示已设置但尚未设置的标头正在尝试设置。

在您的情况下,您已拨打res.redirect(),完成了回复。然后你的代码抛出了一个错误,因为查询失败了,你试图设置一个响应: " res.send("将信息添加到数据库时出现问题。");"。

为了解决问题,您应该将res.redirect('/');移动到查询的回调函数中。

connection.query('INSERT INTO tblstudent VALUES ? ', post,function(err,result){
    if (err) {
            res.send("There was a problem adding the information to the database.");
        } else {
            res.redirect('/');
        }
});