mongoose不解决查询

时间:2015-10-12 19:42:59

标签: node.js mongodb mongoose koa co

我很难理解以下查询的错误。我使用的是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 });永远无法解决。

我甚至试图使用回调方法,但我再也没有得到任何结果。

1 个答案:

答案 0 :(得分:0)

User.findOne({ "local.email": username })会返回一个查询,您需要致电.exec()以返回承诺,并在docs中提供更多信息。