我很难理解以下查询的错误。我使用的是mongoose 4.1.10和mongodb 3.0.6。
passport.use("local-signup", new passportLocal.Strategy({
// by default, local strategy uses username and password, we will override with email
usernameField : 'email',
passwordField : 'password'
//passReqToCallback : true // allows us to pass back the entire request to the callback
}, (username, password, done) => {
co(function *() {
try {
const user = yield User.findOne({ "local.email": username });
if (user) {
return done(null, false);
}
else {
const newUser = new User();
newUser.local.email = username;
yield newUser.save();
}
}
catch(ex) {
done(ex);
}
}).then((user) => {
done(null, user);
});
}));
更具体地说,User.findOne({ "local.email": username });
永远无法解决。
我甚至试图使用回调方法,但我再也没有得到任何结果。
答案 0 :(得分:0)
User.findOne({ "local.email": username })
会返回一个查询,您需要致电.exec()
以返回承诺,并在docs中提供更多信息。