Javascript bcrypt.compare无法在nextjs中设置响应头

Javascript bcrypt.compare无法在nextjs中设置响应头,javascript,express,bcrypt,next.js,Javascript,Express,Bcrypt,Next.js,当我的代码进入bcrypt.compare时,我似乎无法获得正确的响应头。起初我以为这是cors问题,但如果输入错误并且显示“用户不存在”,我仍然会得到正确的响应 这是我在express中的api服务器端代码 router.post(“/api/signIn”,(req,res)=>{ const{user,password}=req.body; const queryString=“从用户_id=?”的用户中选择*; db.query(查询字符串,[用户]) 。然后(结果=>{ 如果(res

当我的代码进入bcrypt.compare时,我似乎无法获得正确的响应头。起初我以为这是cors问题,但如果输入错误并且显示“用户不存在”,我仍然会得到正确的响应

这是我在express中的api服务器端代码

router.post(“/api/signIn”,(req,res)=>{
const{user,password}=req.body;
const queryString=“从用户_id=?”的用户中选择*;
db.query(查询字符串,[用户])
。然后(结果=>{
如果(result.length>0){
常量哈希=结果[0]。密码;
//这里bcrypt.compare在服务器端或与cURL一起工作,但不会在浏览器中设置响应头
bcrypt
.比较(密码、哈希)
。然后(相同=>{
如果(相同===true){
控制台日志(“正确密码”);
res.status(200).json({
代码:200,,
信息:“正确的密码”
});
}否则{
res.status(401).json({
代码:401,
信息:“密码不正确”
});
}
})
.catch(err=>console.log(err));
}否则{
//这一个虽然工作,我可以在浏览器中得到响应,所以它不可能是一个cors的问题
console.log(“用户不存在”);
res.status(200).json({
代码:401,
消息:“用户不存在”
});
}
})
.catch(错误=>{
控制台日志(“错误”+错误消息);
});

});明白了,我忘了将event.preventDefault()放在fetch函数上。

明白了,我忘了将event.preventDefault()放在fetch函数上。

你能检查浏览器控制台以了解有关错误的更多详细信息吗,比如CORS?@sureshraprajapati就是这个吗?数据库中存在user:sad和password:sad,因此它应该返回消息:“correct password”请求URL:Referer Policy:no Referer当显示降级临时标题时内容类型:application/json DNT:1 Referer:Sec Fetch Mode:cors用户代理:Mozilla/5.0(Linux;Android 6.0;Nexus 5 Build/MRA58N)AppleWebKit/537.36(KHTML,像Gecko)Chrome/76.0.3809.100 Mobile Safari/537.36{user:“sad”,password:“sad”}password:“sad”user:“sad”你能不能检查浏览器控制台以了解有关错误的更多详细信息,比如CORS?@sureshraprajapati就是这个吗?user:sad和password:sad存在于数据库中,因此它应该返回消息:“更正密码”请求URL:Referer策略:显示降级临时标题时无Referer内容类型:application/json DNT:1 Referer:Sec Fetch模式:cors用户代理:Mozilla/5.0(Linux;Android 6.0;Nexus 5 Build/MRA58N)AppleWebKit/537.36(KHTML,如Gecko)Chrome/76.0.3809.100 Mobile Safari/537.36{用户:“sad”,密码:“sad”}密码:“sad”用户:“sad”