我试图通过猫鼬和身份验证连接到我的数据库。但是,当我这样做时,出现以下错误:
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');
这是一个错误吗?我快速浏览了猫鼬代码内部,据推测它应该在创建索引之前就已连接。
任何帮助将不胜感激。
预先感谢您。
答案 0 :(得分:0)
最后,我发布的代码还可以。问题是我在其他地方有一个MongoDBStore会话,该会话在后台也隐式地连接到数据库,并且那是触发错误的一个,因为我没有将auth值传递给MongoDBStore。