I am unable to connect to mongodb asynchronously. Please let me know what am I doing wrong.
MongoConfig file:
import { MongooseModuleOptions } from '@nestjs/mongoose';
export default (): { mongoConfig: MongooseModuleOptions } => ({
mongoConfig: {
uri: process.env.DB_URI,
connectionName: 'learn-nest',
useCreateIndex: true,
useUnifiedTopology: true,
useFindAndModify: false,
useNewUrlParser: true,
},
});
Here is the code written inside of App Module
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { MongooseModule } from '@nestjs/mongoose';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: ['.env'],
isGlobal: true,
cache: true,
}),
MongooseModule.forRootAsync({
useFactory: (configService: ConfigService): any => {
configService.get('mongoConfig');
},
inject: [ConfigService],
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
This is the error that it throws:
"Cannot destructure property 'retryAttempts' of 'mongooseModuleOptions' as it is undefined"
I do not understand why it's throwing this error because, 'retryAttempts' is an optional property in MongooseModuleOptions interface.
MongooseModuleInterface
export interface MongooseModuleOptions extends ConnectOptions, Record<string, any> {
uri?: string;
retryAttempts?: number;
retryDelay?: number;
connectionName?: string;
connectionFactory?: (connection: any, name: string) => any;
}