MongoDB Atlas не может взаимодействовать с БД - PullRequest
0 голосов
/ 02 ноября 2018

Иметь простое приложение для аутентификации, которое подключается к Google OAuth и затем сохраняет пользователя в БД. Это приложение Node с экспрессом, паспортом и MongoDB / Mongoose.

после звонка в Google и выбора правильной учетной записи, я получаю данные обратно и пытаюсь сохранить их в своей БД, которая размещена в MongoDB Atlas (версия 4.03). База данных пуста, поэтому у нее не должно быть существующего пользователя, однако она, похоже, попадает в строку const existingUser и просто зависает навсегда, без сообщений об ошибках или чего-либо еще. Когда я удаляю существующего пользователя и просто пытаюсь создать нового пользователя, он делает то же самое и зависает. Я вышел из системы пользовательского экземпляра, и он выглядит правильно с перечисленными необходимыми функциями. Я определенно подключен к БД.

const mongoose = require('mongoose');
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;
const keys = require('../config/keys');
const User = mongoose.model('users');

passport.use(new GoogleStrategy({
    clientID: keys.googleClientID,
    clientSecret: keys.googleClientSecret,
    callbackURL: '/auth/google/callback',
    proxy: true,
}, async (accessToken, refreshToken, profile, done) => {
    const userObject = {
        id: profile.id,
        externalAccounts: [{
            google: [{
                id: profile.id,
                displayName: profile.displayName,
            }]
        }]
    }

    const existingUser = await User.findOne({ id: profile.id });
    if (existingUser) {
        console.log('found existing user');
        return done(null, existingUser);
    }
    const user = await new User(userObject).save();
    console.log('created new user', user);
    done(null, user);
    })
);
...