res.cookie()不会与mysql连接之后

我试图连接到MySQL数据库,运行一个查询,然后设置一个cookie,只有密码是正确的(我知道我不应该使用md5,这只是一个testing项目)。 这是我写的代码,当我执行并请求这个请求时,它说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); 

先谢谢了

在查询执行之前(查询是asynchronous的),您将尽早结束响应( res.end(sql) )。 删除它,而是结束查询callback内的响应,错误应该消失。