【问题标题】:Mongo create user error using passport authenticationMongo使用护照身份验证创建用户错误
【发布时间】:2015-09-13 18:17:57
【问题描述】:

我正在使用 MEAN.IO 堆栈(Mongoose 的默认模板)和 Passport.js 身份验证来创建新用户。每当在下面的代码中调用 user.save(...) 时:

// Use Facebook strategy
passport.use(new FacebookStrategy({
    clientID: config.strategies.facebook.clientID,
    clientSecret: config.strategies.facebook.clientSecret,
    callbackURL: config.strategies.facebook.callbackURL
  },
  function(accessToken, refreshToken, profile, done) {
    User.findOne({
      'facebook.id': profile.id
    }, function(err, user) {
      if (user) {
        return done(err, user);
      }
      user = new User({
        name: profile.displayName,
        email: profile.emails[0].value,
        provider: 'facebook',
        facebook: profile._json,
        roles: ['authenticated']
      });
      user.save(function(err) {
        if (err) {
          console.log(err);
          return done(null, false, {message: 'facebook login failed, email already used by other login strategy'});
        } else {
          return done(err, user);
        }
      });
    });
  }
));

控制台记录以下错误:

MongoError: attempt to use unsupported textIndexVersion 2, only textIndexVersion 1 supported

我在网上查看了 MEAN.IO 堆栈代码,但找不到任何有关如何更改 textIndexVersion 的信息。

任何想法如何更改版本或修复此错误?

【问题讨论】:

    标签: node.js mongodb mongoose passport.js mean-stack


    【解决方案1】:

    根据 Mongo 的错误报告:

    mongod v2.4.9 将正确禁止更改具有 与 2.4 不兼容的文本索引。尝试插入、更新、 或删除这些集合中的文档将返回错误消息 “尝试使用不受支持的 textIndexVersion 2,仅 textIndexVersion 1 个支持”。

    https://jira.mongodb.org/browse/SERVER-11494

    我建议更新您的 Mongo 版本以与 v2.4.9 兼容

    【讨论】:

    • 当前的mongo版本是2.4.9
    猜你喜欢
    • 2018-05-02
    • 2019-08-28
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 2018-11-06
    • 2017-09-17
    • 2016-03-12
    • 2016-10-02
    相关资源
    最近更新 更多