我正在学习stephen grider的全栈react课程,一切看起来都很好,但在google social auth之后,我看不到新的users
集合被添加到mLab数据库中。
我使用的是passport.js和mongoose.js。
下面是相关的源代码:
- index.js*
const express = require('express');
const mongoose = require('mongoose');
const keys = require('./config/keys');
require('./models/User');
require('./services/passport');
mongoose.connect(keys.mongoURI);
const app = express();
require('./routes/authRoutes')(app);
const PORT = process.env.PORT || 5000;
app.listen(PORT)
字符串
- user.js*
const mongoose = require('mongoose');
const { Schema } = mongoose;
const userSchema = new Schema({
googleId: String
});
mongoose.model('users', userSchema);
型
- passport.js*
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;
const mongoose = require('mongoose');
const keys = require('../config/keys');
const User = mongoose.model('users');
passport.use(
new GoogleStrategy(
{
clientID: keys.googleClientID,
clientSecret: keys.googleClientSecret,
callbackURL: '/auth/google/callback'
},
(accessToken, refreshToken, profile, done) => {
new User({ googleId: profile.id }).save();
console.log('accessToken',accessToken,'profile',profile)
}
)
);
型
有没有人可以告诉我,我在哪里犯了错误,因为MongoDB数据库中没有创建新的集合?
2条答案
按热度按时间bkkx9g8r1#
问题出在user.js文件中。单独定义Schema不起作用。您还需要导出它。
字符串
此外,如果有人遇到这种类型的错误,请确保您使用正确的凭据(用户名和密码)的特定mongo数据库。
iezvtpos2#
如果您的数据库密码包含mLab上的**
@
**,则不起作用删除并重试,则会起作用