If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
NestJS में Lazy Loading Modules का concept तब काम आता है जब आपको अपने application का boot time improve करना हो और only needed modules को load करना हो जब उनकी need हो।
Large-scale applications में, सभी modules को एक साथ load करना efficient नहीं होता, especially जब कुछ modules सिर्फ specific routes के लिए need होते हैं।
Lazy loading आपको इस problem का solution देता है, जहाँ modules को तभी load किया जाता है जब उन्हें actually use किया जाता है।
इस topic में हम समझेंगे कि Lazy Loading Modules
क्या होते हैं, कैसे इन्हे implement किया जाता है, और कैसे यह आपके NestJS applications के performance को optimize करते हैं।
●●●
Lazy loading का concept यह कहता है कि आप modules को तभी load करें जब उनकी need हो, instead of उन्हें application के start hone पर load करना।
यह approach application का initial load time reduce करता है, क्योंकि सिर्फ वही modules load होते हैं जो immediately needed होते हैं। बाकी modules जब उनकी need होती है तभी dynamically
load होते हैं।
NestJS में, lazy loading को mainly modules के साथ implement किया जाता है, जिसमे आप specific routes के लिए modules को lazy load करते हैं।
जैसे अगर आपका application large-scale है, और कुछ features सिर्फ admin section के लिए हैं, तो आप उन्हें lazy load कर सकते हैं जब admin user login करे।
NestJS में lazy loading को implement करने के लिए आपको dynamic module imports का use करना पड़ता है। यह forRoutes()
method के साथ किया जाता है, जो specific routes के लिए modules को load करता है।
{
path: 'admin',
module: AdminModule, // This model will load lazily when the 'admin' route is hit.
}
यहां , AdminModule
को सिर्फ तब load किया जाएगा जब कोई user admin route को hit करेगा।
●●●
चलिए एक practical example बनाते हैं जिसमे हम एक AdminModule
को lazily load करते हैं, जो सिर्फ admin users के लिए accessible होगा।
पहले एक admin module बनाते हैं जो admin-related functionality को handle करेगा।
File : src/admin/admin.module.ts
import { Module } from '@nestjs/common';
import { AdminController } from './admin.controller';
@Module({
controllers: [AdminController],
})
export class AdminModule {}
File : src/admin/admin.controller.ts
import { Controller, Get } from '@nestjs/common';
@Controller('admin')
export class AdminController {
@Get()
getAdminDashboard() {
return 'Welcome to Admin Dashboard!';
}
}
यहां AdminController
में एक simple getAdminDashboard()
method है जो admin route को handle करेगा।
अब हम AppModule
में admin module को lazily load करेंगे जब admin route को access किया जाएगा।
File : src/app.module.ts
import { Module } from '@nestjs/common';
import { RouterModule } from '@nestjs/core';
@Module({
imports: [
RouterModule.register([
{
path: 'admin',
loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule), // Lazy loading
},
]),
],
})
export class AppModule {}
इस code में -
RouterModule.register()
का use किया गया है तो dynamically load AdminModule.
loadChildren
property ensure करती है कि AdminModule
सिर्फ तब load होगा जब कोई user admin route को access करेगा।
●●●
NestJS में lazy loading को route-specific implement करना काफी आसान है। आप specific routes के लिए modules को lazily load कर सकते हैं। यह approach तब काफी useful होता है जब आपके application में कुछ modules सिर्फ specific routes के लिए need होते हैं।
अगर आपका application में एक user profile
section और एक admin dashboard section है, तो आप इन दोनो को lazily load कर सकते हैं -
RouterModule.register([
{
path: 'profile',
loadChildren: () => import('./profile/profile.module').then(m => m.ProfileModule),
},
{
path: 'admin',
loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule),
},
]);
यहां
ProfileModule
सिर्फ तब load होगा जब कोई user profile route को access करेगा।
AdminModule
तभी load होगा जब admin route को hit किया जाएगा।
●●●
Lazy Load Only When Necessary : Lazy loading का use तभी करें जब module का immediate use नहीं है। Overuse से unnecessary complexity बढ़ सकती है।
Optimize Large Modules : जो modules काफी heavy हैं (जैसे admin dashboard, analytics, reports), उन्हें lazily load करना best practice है। इससे आपका initial application load fast होगा।
Keep Modules Self-Contained : Lazy loaded modules को self-contained बनाएं, जिसमे sari dependencies module के अंदर ही हूँ। इससे modularity और maintainability बढ़ती है।
Monitor Performance : Lazy loading से performance improve होता है, लेकिन हमेशा यह ensure करें कि आपका lazy loading logic सही से काम कर रहा हो और कोई overhead create न कर रहा हो।
●●●
Lazy Loading Modules NestJS में एक powerful technique है जो आपको application का load time optimize
करने कि facility देती है। यह technique आपको सिर्फ तभी modules load करने देती है जब उनकी need हो, जिससे application का initial load time और memory consumption कम होता है।
इस topic में हमने देखा कि कैसे lazy loading को implement किया जाता है, कैसे specific routes के लिए modules को dynamically load करते हैं, और कैसे best practices को follow करते hue application को optimize कर सकते हैं।