Node.js 与身份验证连接时出现Mongoose索引错误

Node.js 与身份验证连接时出现Mongoose索引错误,node.js,database,mongodb,mongoose,Node.js,Database,Mongodb,Mongoose,我正在尝试使用mongoose和身份验证连接到我的DB。但是,当我这样做时,我得到以下错误: 01-11-2020 08:47:18 error: uncaughtException: Error creating index: command createIndexes requires authentication Error: Error creating index: command createIndexes requires authentication 我读过Mongoose c

我正在尝试使用mongoose和身份验证连接到我的DB。但是,当我这样做时,我得到以下错误:

01-11-2020 08:47:18 error: uncaughtException: Error creating index: command createIndexes requires authentication
Error: Error creating index: command createIndexes requires authentication
我读过Mongoose connect试图在开始时创建索引,如果autoIndex选项未设置为false。然而,我仍然想知道,当身份验证完成时,为什么会失败

我的代码如下:

 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');
这是虫子吗?我快速查看了mongoose代码,据我所知,它应该在创建索引之前进行连接

任何帮助都将不胜感激


提前向您表示感谢和问候。

最后,我发布的代码还可以。问题是我在其他地方有一个MongoDBStore会话,该会话隐式连接到DB以及后台,这是一个触发错误的会话,因为我没有向MongoDBStore传递身份验证值。

您的用户是否有适当的权限/角色在数据库上创建索引?是的,因为我使用根用户进行身份验证。