Provider হল NestJS এর একটি Fundamental Concept। অনেক ধরণের Nest class কে Provider হিসেবে ধরা হয়। যেমন : Service, repository, factories, helper এবং আরো অনেক class। Best Practice হচ্ছে Controller class request handle করবে আর provider class কে complex task প্রদান করবে।
আসুন আমরা এখন দেখবো কিভাবে একটি service class create করবো এবং সেই class কিভাবে আমরা controller class এ ব্যবহার করবো।
import { Injectable } from '@nestjs/common';
import { Product } from './interfaces/product.interface';
@Injectable()
export class ProductService {
private readonly products: Product[] = [];
create(product: Product) {
this.products.push(product);
}
findAll(): Product[] {
return this.products;
}
}
ProductService হচ্ছে একটি sample provider। এখানে আমি ২ টি method / function লিখেছি। একটার কাজ হল product create করা আরেকটির কাজ হল saved product list রিটার্ন করা।
Service class আমরা manually create করতে পারি আবার
nest g service ProductService
এই command use করেও create করতে পারি।
Provider Registration
সর্বশেষ কাজ হচ্ছে Service class টিকে provider হিসেবে Nest এ register করা যেন class টিকে অন্য class এ inject করা যায়। আমরা এটিকে app.module.ts module এর decorator array তে add করবো।
@Module({
controllers: [AppController, ProductController],
providers: [AppService, ProductService],
})
export class AppModule{
}