Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么回调不使用mongoose findOne方法?_Node.js_Express_Mongoose - Fatal编程技术网

Node.js 为什么回调不使用mongoose findOne方法?

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

在节点应用程序中使用Expressjs和mongoose。我正在尝试实现passportjs身份验证当我调用新的LocalStrategy并传递用户名和回调函数以获取用户名(如果存在)时,回调函数不会执行。为了验证我打印的控制台消息是回调,但即使消息也不会显示。为什么会发生这种情况,我如何解决

这是路由器(index.js)

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()这里