我尝试连接到 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);
提前致谢
最佳答案
您将在查询执行之前提前结束响应 (res.end(sql)
)(查询是异步的)。删除它并在查询回调中结束响应,错误应该消失。
关于mysql - res.cookie() 在与 mysql 连接后没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32081989/