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 })Query を返します。Promise.exec()を返すには呼び出す必要があります。詳細についてはdocsを参照してください。

于 2015-10-12T21:23:52.510 に答える