create-nest-template-malahimdev
Version:
Scaffolds a NestJS template with Swagger, global pipes, exception filters, MongoDB connection and response helpers.
43 lines (38 loc) • 1.32 kB
text/typescript
import { Module, OnModuleInit } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { MongooseModule, InjectConnection } from '@nestjs/mongoose';
import { Connection } from 'mongoose';
({
imports: [
ConfigModule.forRoot({ isGlobal: true }),
MongooseModule.forRootAsync({
useFactory: (config: ConfigService) => ({
uri: config.get<string>('MONGO_URI') || 'mongodb://127.0.0.1:27017/mydb',
}),
inject: [ConfigService],
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule implements OnModuleInit {
constructor(() private readonly connection: Connection) {}
async onModuleInit() {
if (this.connection.readyState === 1) {
console.log('✅ MongoDB already connected');
} else {
console.log('⏳ MongoDB connecting... current state:', this.connection.readyState);
}
this.connection.on('connected', () => {
console.log('✅ MongoDB connected');
});
this.connection.on('error', (err) => {
console.error('❌ MongoDB connection error:', err);
});
this.connection.on('disconnected', () => {
console.warn('⚠️ MongoDB disconnected');
});
}
}