通过身份验证连接时出现猫鼬索引错误

时间:2020-11-01 09:08:59

标签: node.js database mongodb mongoose

我试图通过猫鼬和身份验证连接到我的数据库。但是,当我这样做时,出现以下错误:

01-11-2020 08:47:18 error: uncaughtException: Error creating index: command createIndexes requires authentication
Error: Error creating index: command createIndexes requires authentication

如果autoIndex选项未设置为false,我已经读过Mongoose connect尝试在开始时创建索引。但是,我仍然想知道为什么在身份验证完成后仍然失败。

我的代码如下:

 const mongooseOptions = {
      useNewUrlParser: true,
      useFindAndModify: false,
      useUnifiedTopology: true,
      bufferCommands: false,
      useCreateIndex: true
    };
    if (process.env.NODE_ENV === 'production') {
      logger.info('Setting DB auth');
      mongooseOptions.user = process.env.MONGO_ROOT_USER;
      mongooseOptions.pass = process.env.MONGO_ROOT_PASSWORD;
      mongooseOptions.authSource = 'admin';
    }
    logger.info('Connecting to DB');
    await mongoose.connect(databaseURL, mongooseOptions); // error comes from this call
    logger.info('Connected to DB');

这是一个错误吗?我快速浏览了猫鼬代码内部,据推测它应该在创建索引之前就已连接。

任何帮助将不胜感激。

预先感谢您。

1 个答案:

答案 0 :(得分:0)

最后,我发布的代码还可以。问题是我在其他地方有一个MongoDBStore会话,该会话在后台也隐式地连接到数据库,并且那是触发错误的一个,因为我没有将auth值传递给MongoDBStore。