【问题标题】:Cannot add new collection in mongodb in mLab无法在 mLab 的 mongodb 中添加新集合
【发布时间】:2018-09-17 05:40:40
【问题描述】:

我正在关注 stephen grider 的全栈反应课程。一切看起来都不错,但在 google 社交身份验证之后,我看不到新的 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 数据库中创建新集合?

【问题讨论】:

  • 我在您的 User 架构 (user.js) 中看不到 module.export
  • @AnkitAgarwal 你能告诉我要从中导出什么吗?我们不能直接访问用户吗?
  • mongoose.model('users', userSchema); 替换为module.export = mongoose.model('users', userSchema); 并尝试。因为您需要导出model 以便在您的passport.js 文件中使用它。
  • 尝试module.exportS 而不是module.export

标签: node.js mongodb mongoose passport.js mlab


【解决方案1】:

如果您的数据库密码包含 @,它将不起作用 删除并重试它会起作用

【讨论】:

    【解决方案2】:

    问题出在 user.js 文件中。单独定义 Schema 是行不通的。您也需要将其导出。

    const mongoose = require('mongoose');
    const { Schema } = mongoose;
    
    const userSchema = new Schema({
      googleId: String
    });
    
    module.exports = mongoose.model('users', userSchema);
    

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

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 1970-01-01
      • 2022-01-23
      • 2022-11-10
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      相关资源
      最近更新 更多