Node.js / NestJS

āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđāļĨāļ°āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄ

ConfigModule, āļ•āļąāļ§āđāļ›āļĢāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄ, .env, secrets, āļŦāļĨāļēāļĒāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄ (dev/staging/prod), feature flags

20 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Mid-Level
1

ConfigModule āđƒāļ™ NestJS āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

ConfigModule āđ€āļ›āđ‡āļ™āđ‚āļĄāļ”āļđāļĨāļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļāļēāļĢāļ‚āļ­āļ‡ NestJS āļ—āļĩāđˆāļĢāļ§āļĄāļĻāļđāļ™āļĒāđŒāļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āđ‚āļŦāļĨāļ”āļ•āļąāļ§āđāļ›āļĢāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄāļˆāļēāļāđ„āļŸāļĨāđŒ .env āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ”āđ‰āļ§āļĒ schema āđāļĨāļ° inject āđ€āļ‚āđ‰āļēāļŠāļđāđˆ service āļœāđˆāļēāļ™ ConfigService āļ•āđˆāļēāļ‡āļˆāļēāļāļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡ process.env āđ‚āļ”āļĒāļ•āļĢāļ‡ āļĄāļąāļ™āđƒāļŦāđ‰āļāļēāļĢāļāļģāļŦāļ™āļ”āļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āđāļĨāļ°āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļĒāļđāļ™āļīāļ•āļ—āļģāđ„āļ”āđ‰āļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™

2

āļˆāļ° import ConfigModule āđƒāļ™āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ NestJS āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

ConfigModule āļ–āļđāļ import āļ”āđ‰āļ§āļĒ ConfigModule.forRoot() āđƒāļ™āđ‚āļĄāļ”āļđāļĨāļĢāļēāļ (AppModule) āđ€āļĄāļ˜āļ­āļ”āļ™āļĩāđ‰āļˆāļ°āđ‚āļŦāļĨāļ”āđ„āļŸāļĨāđŒ .env āļˆāļēāļāļĢāļēāļāļ‚āļ­āļ‡āđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒāđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāđāļĨāļ°āļ—āļģāđƒāļŦāđ‰ ConfigService āļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļ—āļąāđˆāļ§āļ—āļąāđ‰āļ‡āļĢāļ°āļšāļš āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰āļĒāļąāļ‡āļŠāļēāļĄāļēāļĢāļ–āļŠāđˆāļ‡āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāđ€āļŠāđˆāļ™ envFilePath āđ€āļžāļ·āđˆāļ­āļĢāļ°āļšāļļāļžāļēāļ˜āļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡ āļŦāļĢāļ·āļ­ isGlobal āđ€āļžāļ·āđˆāļ­āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļāļēāļĢ import āđ‚āļĄāļ”āļđāļĨāļ‹āđ‰āļģ

3

āđ„āļŸāļĨāđŒ .env āļĄāļĩāļšāļ—āļšāļēāļ—āļ­āļĒāđˆāļēāļ‡āđ„āļĢāđƒāļ™āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ Node.js?

āļ„āļģāļ•āļ­āļš

āđ„āļŸāļĨāđŒ .env āđ€āļāđ‡āļšāļ•āļąāļ§āđāļ›āļĢāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄāđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ°āļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄ (development, staging, production) āļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāļ„āđˆāļēāļ•āđˆāļēāļ‡ āđ† āđ€āļŠāđˆāļ™ URL āļ‚āļ­āļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ API key āđāļĨāļ° secrets āđ„āļŸāļĨāđŒāļ™āļĩāđ‰āđ„āļĄāđˆāļ„āļ§āļĢ commit āļĨāļ‡ Git āđ‚āļ”āļĒāđ€āļ”āđ‡āļ”āļ‚āļēāļ” (āđ€āļžāļīāđˆāļĄāļĨāļ‡āđƒāļ™ .gitignore) āđ€āļžāļ·āđˆāļ­āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļāļēāļĢāđ€āļ›āļīāļ”āđ€āļœāļĒāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ­āđˆāļ­āļ™ āļĄāļąāļ™āļˆāļ°āļ–āļđāļāđ‚āļŦāļĨāļ”āļ•āļ­āļ™āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļœāđˆāļēāļ™āđ„āļĨāļšāļĢāļēāļĢāļĩāđ€āļŠāđˆāļ™ dotenv

4

āļˆāļ°āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ•āļąāļ§āđāļ›āļĢāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄāļ”āđ‰āļ§āļĒ ConfigService āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

5

NestJS āđƒāļŠāđ‰āđ„āļĨāļšāļĢāļēāļĢāļĩāđƒāļ”āđƒāļ™āļāļēāļĢāđ‚āļŦāļĨāļ”āđ„āļŸāļĨāđŒ .env?

+17 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Node.js / NestJS āļ­āļ·āđˆāļ™āđ†

āļžāļ·āđ‰āļ™āļāļēāļ™ Node.js

Junior
20 āļ„āļģāļ–āļēāļĄ

Core API āļ‚āļ­āļ‡ Node.js

Junior
25 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāđāļšāļšāļ­āļ°āļ‹āļīāļ‡āđ‚āļ„āļĢāļ™āļąāļŠ

Junior
25 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ Express.js

Junior
20 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ NestJS

Junior
23 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ­āļ­āļāđāļšāļš REST API

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ–āļđāļāļ•āđ‰āļ­āļ‡āđāļĨāļ° DTO

Junior
20 āļ„āļģāļ–āļēāļĄ

āđ€āļ­āļāļŠāļēāļĢ API āđāļĨāļ° Contract

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļŦāļ™āđˆāļ§āļĒ (Unit Testing)

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļ•āļēāļĢāļēāļ‡āļ‡āļēāļ™

Junior
15 āļ„āļģāļ–āļēāļĄ

Module āđāļĨāļ° DI āļ‚āļ­āļ‡ NestJS

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒ JWT

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđƒāļŦāđ‰āļŠāļīāļ—āļ˜āļīāđŒāđāļĨāļ° RBAC

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ”āđ‰āļ§āļĒ TypeORM

Mid-Level
30 āļ„āļģāļ–āļēāļĄ

Prisma ORM

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Middleware āđāļĨāļ° Interceptor

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ­āļąāļ›āđ‚āļŦāļĨāļ”āđ„āļŸāļĨāđŒ

Mid-Level
15 āļ„āļģāļ–āļēāļĄ

WebSockets

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

GraphQL āļāļąāļš NestJS

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāđāļšāļš End-to-End

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđāļ„āļŠāļ”āđ‰āļ§āļĒ Redis

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļ„āļīāļ§āļ”āđ‰āļ§āļĒ Bull

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

DevOps, Logging āđāļĨāļ° CI/CD

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

Docker āđāļĨāļ° Containerization

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

āđ„āļĄāđ‚āļ„āļĢāđ€āļ‹āļ­āļĢāđŒāļ§āļīāļŠ

Senior
30 āļ„āļģāļ–āļēāļĄ

āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”āļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ

Senior
25 āļ„āļģāļ–āļēāļĄ

āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āļāļēāļĢ Deploy āļšāļ™ Cloud

Senior
30 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ Node.js / NestJS āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ