res.cookie()在与mysql连接后没有

时间:2015-08-18 20:25:17

标签: mysql node.js cookies express

我尝试连接到mysql数据库,运行查询然后只在密码正确时设置一个cookie(我知道我不应该使用md5,这只是一个测试项目)。这是我编写的代码,当我执行并请求此请求时,它会显示Error: Can't set headers after they are sent.

但在我打电话之前我没有发出任何回复res.cookie()我不知道出了什么问题:

    email=req.params.email;
    password=req.params.password;
    var connection = mysql.createConnection({
      host     : 'localhost',
      user     : 'root',
      password : 'nishchal11',
      database : 'venturesity'
    });

    connection.connect();
    sql="SELECT * FROM user WHERE user_email="+connection.escape(email)+" AND password=md5("+connection.escape(password)+");";

    connection.query(sql,function (err,rows,fields) {
        res.cookie("email",email);
        if(!err){
            if(rows.length==1){
                //res.cookie("password",rows[0].pass);
                console.log(rows[0].pass);
            }else{
                console.log("wrong pass");
            }
        }else{
            console.log("Error");
        }
    });
    res.end(sql);

先谢谢

1 个答案:

答案 0 :(得分:2)

您在查询执行之前(查询是异步的)提前结束响应(res.end(sql))。删除它,然后在查询回调中结束响应,错误应该消失。