0

我很难理解以下查询有什么问题。我正在使用 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 });永远不会解决。

我什至尝试使用回调方法,但我再次没有得到任何结果。

4

1 回答 1

0

User.findOne({ "local.email": username })返回一个查询,您需要调用.exec()以返回一个 Promise,文档中的更多信息。

于 2015-10-12T21:23:52.510 回答