mongoose 无法在mLab中的mongodb中添加新集合

bq9c1y66  于 2024-01-08  发布在  Go
关注(0)|答案(2)|浏览(261)

我正在学习stephen grider的全栈react课程,一切看起来都很好,但在google social auth之后,我看不到新的users集合被添加到mLab数据库中。
我使用的是passport.js和mongoose.js。
下面是相关的源代码:

  • index.js*
  1. const express = require('express');
  2. const mongoose = require('mongoose');
  3. const keys = require('./config/keys');
  4. require('./models/User');
  5. require('./services/passport');
  6. mongoose.connect(keys.mongoURI);
  7. const app = express();
  8. require('./routes/authRoutes')(app);
  9. const PORT = process.env.PORT || 5000;
  10. app.listen(PORT)

字符串

  • user.js*
  1. const mongoose = require('mongoose');
  2. const { Schema } = mongoose;
  3. const userSchema = new Schema({
  4. googleId: String
  5. });
  6. mongoose.model('users', userSchema);

  • passport.js*
  1. const passport = require('passport');
  2. const GoogleStrategy = require('passport-google-oauth20').Strategy;
  3. const mongoose = require('mongoose');
  4. const keys = require('../config/keys');
  5. const User = mongoose.model('users');
  6. passport.use(
  7. new GoogleStrategy(
  8. {
  9. clientID: keys.googleClientID,
  10. clientSecret: keys.googleClientSecret,
  11. callbackURL: '/auth/google/callback'
  12. },
  13. (accessToken, refreshToken, profile, done) => {
  14. new User({ googleId: profile.id }).save();
  15. console.log('accessToken',accessToken,'profile',profile)
  16. }
  17. )
  18. );


有没有人可以告诉我,我在哪里犯了错误,因为MongoDB数据库中没有创建新的集合?

bkkx9g8r

bkkx9g8r1#

问题出在user.js文件中。单独定义Schema不起作用。您还需要导出它。

  1. const mongoose = require('mongoose');
  2. const { Schema } = mongoose;
  3. const userSchema = new Schema({
  4. googleId: String
  5. });
  6. module.exports = mongoose.model('users', userSchema);

字符串
此外,如果有人遇到这种类型的错误,请确保您使用正确的凭据(用户名和密码)的特定mongo数据库。

iezvtpos

iezvtpos2#

如果您的数据库密码包含mLab上的**@**,则不起作用删除并重试,则会起作用

相关问题