Javascript bcrypt没有返回任何NODEJS
这一直都是有效的,但不知怎么的,这对我不起作用: 我用来比较密码的东西:Javascript bcrypt没有返回任何NODEJS,javascript,node.js,ajax,express,es6-promise,Javascript,Node.js,Ajax,Express,Es6 Promise,这一直都是有效的,但不知怎么的,这对我不起作用: 我用来比较密码的东西: router.post("/login", [ check('email', 'Email is required').isEmail(), check('password', 'Password is required').not().isEmpty() ], async (req, res) => { const { email, password } = req.body;
router.post("/login", [
check('email', 'Email is required').isEmail(),
check('password', 'Password is required').not().isEmpty()
], async (req, res) => {
const { email, password } = req.body;
const errors = validationResult(req);
if ( !errors.isEmpty() || !email || !password ) {
return res.status(401).json({err: "Authentication failure"});
};
try {
const user = User.findOne({ email: email });
if(!user) {
return res.status(401).json({err: "Invalid username or password"});
}
const isValid = await bcrypt.compare(password, user.password); //// <-------HERE!!!!!
console.log("Not reaching here")
if (!isValidPassword) {
return res.status(401).json({err: "Invalid username or password"});
}
//if valid password
res.status(200).send("SUCCESS");
} catch (error) {
res.status(500).json({err: "Internal server error"});
}
})
router.post(“/login”[
选中('email','email是必需的')。isEmail(),
检查('password','password is required').not().isEmpty()
],异步(req,res)=>{
const{email,password}=req.body;
常量错误=验证结果(req);
如果(!errors.isEmpty()| | |!电子邮件| |!密码){
返回res.status(401.json)({err:“身份验证失败”});
};
试一试{
const user=user.findOne({email:email});
如果(!用户){
返回res.status(401.json)({err:“无效用户名或密码”});
}
const isValid=await bcrypt.compare(password,user.password);///我在进行DB查询时没有使用“await”!
更正:
const user = await User.findOne({ email: email });
它是否发送内部服务器错误响应?您是否在catch块中尝试了console.log(error)
?谢谢,我找到了答案。