我遇到的问题是Mongoose查询总是返回null。 我包含了Schema的定义和查询部分。我试图在Mongoose.Im上查询User集合,也使用passport api进行身份验证。
var Schema=mongose.Schema;
var UserSchema= new Schema
( {
email :{type:String,unique:true,lowercase:true},
password : String,
profile :
{ name :{type :String, default : ''}, picture :{type :String, default : ''} }, adress:String,
history : [{date : Date , paid :{ type :Number,default :0}}]
});
module.exports=mongose.model('User',UserSchema,'');
var passport=require('passport');
var LocalStrategy=require('passport-local').Strategy;
var User=require('../models/user');
/*Se llama con cada Post*/
passport.serializeUser(function(user,done)
{
done(null,user_id);
});
/*Se llama con cada Get*/
passport.deserializeUser(function(id,done)
{
User.findById(id,function(err,user)
{
done(err,user);
});
});
/*This is where I get the error*/
passport.use('local-login',
new LocalStrategy({
usernameField :'email',
passwordField : 'password',
passReqToCallback : true
},function (req,email,password,done) {
User.findOne({email:email},function(err,user){
if(err) return done(err);
if(!user){
done(null,false);
}
if (!user.comparePassword(password)) {
done(null,false);
}
return done(null,user);
})
}));