Node.js / NestJS

Middleware āđāļĨāļ° Interceptor

Middleware, interceptor, āļ•āļąāļ§āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ RxJS, āļāļēāļĢāđāļ›āļĨāļ‡ request/response, caching

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

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

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

Middleware āļ„āļ·āļ­āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ—āļĩāđˆāļ—āļģāļ‡āļēāļ™āļāđˆāļ­āļ™ route handler āļĄāļąāļ™āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ­āđ‡āļ­āļšāđ€āļˆāļāļ•āđŒ request āđāļĨāļ° response āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđāļāđ‰āđ„āļ‚ request, response, āļˆāļšāļ§āļ‡āļˆāļĢ request-response āļŦāļĢāļ·āļ­āļŠāđˆāļ‡āļ•āđˆāļ­āđ„āļ›āļĒāļąāļ‡ middleware āļ–āļąāļ”āđ„āļ›āļ”āđ‰āļ§āļĒ next() āđ„āļ”āđ‰ Middleware āđ€āļŦāļĄāļēāļ°āļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ logging āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļžāļ·āđ‰āļ™āļāļēāļ™ āļŦāļĢāļ·āļ­āļāļēāļĢāđāļāđ‰āđ„āļ‚ header āđ‚āļ”āļĒāļ—āļģāļ‡āļēāļ™āļ•āļēāļĄāļĨāļģāļ”āļąāļšāļ—āļĩāđˆāļ–āļđāļāļ›āļĢāļ°āļāļēāļĻ

2

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

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

Interceptor āļ„āļ·āļ­āļ„āļĨāļēāļŠāļ—āļĩāđˆāļĄāļĩāđ€āļ”āļ„āļ­āđ€āļĢāđ€āļ•āļ­āļĢāđŒ @Injectable() āļ‹āļķāđˆāļ‡ implement NestInterceptor āļĄāļąāļ™āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ”āļąāļāļˆāļąāļš request āđ„āļ”āđ‰āļ—āļąāđ‰āļ‡āļāđˆāļ­āļ™āđāļĨāļ°āļŦāļĨāļąāļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ route handler āļ”āđ‰āļ§āļĒ RxJS āļĄāļąāļ™āļŠāļēāļĄāļēāļĢāļ–āđāļ›āļĨāļ‡āļœāļĨāļĨāļąāļžāļ˜āđŒ āļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” āđ€āļžāļīāđˆāļĄ caching āļ§āļąāļ”āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āļŦāļĢāļ·āļ­āļšāļąāļ™āļ—āļķāļ log āļ‚āļ­āļ‡ response āđ„āļ”āđ‰ Interceptor āđƒāļŦāđ‰āļāļēāļĢāļ„āļ§āļšāļ„āļļāļĄāļ§āļ‡āļˆāļĢāļŠāļĩāļ§āļīāļ•āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđ„āļ”āđ‰āļĄāļēāļāļāļ§āđˆāļē middleware

3

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļŦāļĨāļąāļāļĢāļ°āļŦāļ§āđˆāļēāļ‡ middleware āļāļąāļš interceptor āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

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

Middleware āļ—āļģāļ‡āļēāļ™āļāđˆāļ­āļ™ handler āđāļĨāļ°āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āđ‰āļēāļ–āļķāļ‡ response āļŠāļļāļ”āļ—āđ‰āļēāļĒāđ„āļ”āđ‰ Interceptor āđƒāļŠāđ‰ RxJS āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ—āļąāđ‰āļ‡āļāđˆāļ­āļ™āđāļĨāļ°āļŦāļĨāļąāļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™ āļ—āļģāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āđāļ›āļĨāļ‡ response āđ„āļ”āđ‰ Middleware āđ€āļĢāļĩāļĒāļšāļ‡āđˆāļēāļĒāļāļ§āđˆāļēāļŠāļģāļŦāļĢāļąāļšāļ‡āļēāļ™āļžāļ·āđ‰āļ™āļāļēāļ™āđ€āļŠāđˆāļ™āļāļēāļĢ logging request āļ‚āļ“āļ°āļ—āļĩāđˆ interceptor āļ—āļĢāļ‡āļžāļĨāļąāļ‡āļāļ§āđˆāļēāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđāļ›āļĨāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” āļŦāļĢāļ·āļ­āļāļēāļĢāļ—āļģ caching

4

āļ„āļ­āļĄāđ‚āļžāđ€āļ™āļ™āļ•āđŒāđƒāļ™ NestJS āļ—āļģāļ‡āļēāļ™āļ•āļēāļĄāļĨāļģāļ”āļąāļšāđƒāļ”?

5

āļˆāļ°āđƒāļŠāđ‰ middleware āđāļšāļš global āđƒāļ™ NestJS āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

+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 āļ„āļģāļ–āļēāļĄ

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

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

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

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

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

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

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

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

Prisma ORM

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

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

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 āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

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