Node.js 为什么回调不使用mongoose findOne方法?
在节点应用程序中使用Expressjs和mongoose。我正在尝试实现passportjs身份验证当我调用新的LocalStrategy并传递用户名和回调函数以获取用户名(如果存在)时,回调函数不会执行。为了验证我打印的控制台消息是回调,但即使消息也不会显示。为什么会发生这种情况,我如何解决 这是路由器(index.js)Node.js 为什么回调不使用mongoose findOne方法?,node.js,express,mongoose,Node.js,Express,Mongoose,在节点应用程序中使用Expressjs和mongoose。我正在尝试实现passportjs身份验证当我调用新的LocalStrategy并传递用户名和回调函数以获取用户名(如果存在)时,回调函数不会执行。为了验证我打印的控制台消息是回调,但即使消息也不会显示。为什么会发生这种情况,我如何解决 这是路由器(index.js) router.post('/login',(req,res,next)=>{ log(“登录后调用”) passport.authenticate('local'{ su
router.post('/login',(req,res,next)=>{
log(“登录后调用”)
passport.authenticate('local'{
successRedirect:“/”,
failureRedirect:“/login”,
failureFlash:“正确”
})(req、res、next);
});
passport.use(新本地策略)(
(用户名、密码、完成)=>{
log(“调用本地策略”)
User.getUserByUsername(用户名,(错误,用户)=>{
console.log(“此消息应在回调中显示”);//此消息未显示
如果(错误)抛出错误;
如果(!用户){
返回完成(null,false,{消息:“未找到用户”});
}
User.comparePassword(密码,User.password,(err,isMatch)=>{
如果(错误)抛出错误;
如果(isMatch){
返回完成(空,用户);
}
否则{
返回完成(null,false,{消息:“错误密码”});
}
});
});
}
));
您忘记在getUserByUsername
@Ashish中返回,请告诉我如何返回正确的输出。我找不到它。返回User.findOne(query.exec()代码>这里