Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • NestJS Documentation21টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • Installation
  • Modules
  • Controllers
  • Providers & DI
  • Pipes
  • Guards
  • Interceptors
  • Exception Handling
  • Middleware
  • Database
  • Authentication
  • Config & Env
  • File Upload
  • WebSockets
  • Microservices
  • Swagger
  • Testing
  • Best Practices
  • Project
  • Interview
  1. Docs
  2. NestJS
  3. NestJS Configuration
NestJSIntermediate

NestJS Configuration

@nestjs/config, .env, environment validation, typed config — বাংলায়।

13টি অংশবাংলা ভাষায়

Configuration server-এর setting manage করা — port, db url, secrets ইত্যাদি। официальный @nestjs/config ব্যবহার করাই সেরা।

Setup

npm i @nestjs/config joi
.envenv
env
PORT=3000
MONGO_URI=mongodb://localhost:27017/nestapp
JWT_SECRET=my_secret
NODE_ENV=development
app.module.tstypescript
typescript
import { Module } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";

@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true, // সব module-এ accessible
      envFilePath: [".env.development", ".env"],
    }),
  ],
})
export class AppModule {}

ConfigService Inject

import { Injectable } from "@nestjs/common";
import { ConfigService } from "@nestjs/config";

@Injectable()
export class DatabaseService {
  constructor(private configService: ConfigService) {}

  getConfig() {
    return {
      port: this.configService.get<number>("PORT", 3000), // default
      dbUrl: this.configService.get<string>("MONGO_URI"),
      env: this.configService.get("NODE_ENV"),
    };
  }
}

Typed Configuration

src/config/configuration.tstypescript
typescript
export interface AppConfig {
  port: number;
  database: { uri: string };
  jwt: { secret: string; expiresIn: number };
}

export default (): AppConfig => ({
  port: parseInt(process.env.PORT ?? "3000", 10),
  database: {
    uri: process.env.MONGO_URI ?? "mongodb://localhost:27017/nestapp",
  },
  jwt: {
    secret: process.env.JWT_SECRET ?? "",
    expiresIn: parseInt(process.env.JWT_EXPIRES ?? "3600", 10),
  },
});
ConfigModule.forRoot({
  load: [configuration], // typed config
  isGlobal: true,
})

Environment Validation (Joi)

import * as Joi from "joi";

ConfigModule.forRoot({
  validationSchema: Joi.object({
    PORT: Joi.number().default(3000),
    MONGO_URI: Joi.string().required(),
    JWT_SECRET: Joi.string().required(),
    NODE_ENV: Joi.string()
      .valid("development", "production", "test")
      .default("development"),
  }),
  validationOptions: {
    allowUnknown: true, // অন্য keys বাদ যাবে না
    abortEarly: false,
  },
})
বিখ্যাত অভ্যাস

.env git-এ commit করবেন না — .env.example রাখুন। Joi validation দিয়ে launch-এই ভুল env ধরা পড়ে।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরNestJS Authentication (JWT)পরেরNestJS File Upload (Multer)
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com