What is NestJS and how does it differ from Express?

Why Interviewers Ask This

Interviewers ask this to evaluate whether you have the depth of knowledge needed to mentor others and lead technical decisions. The expected answer goes beyond definitions into practical implications and real-world consequences.

Answer

NestJS is a progressive, opinionated Node.js framework for building scalable, maintainable server-side applications. It is built on top of Express (or Fastify) but adds an architectural layer inspired by Angular. Key differences from Express: (1) Structure: Express is minimal and unopinionated — you decide the folder structure. NestJS enforces a module-based architecture (Controllers, Services, Modules, Guards, Interceptors, Pipes) that scales for large teams; (2) Dependency injection: NestJS has a built-in IoC container — injectable services are declared with @Injectable(); (3) TypeScript first: NestJS is built for TypeScript with full type safety throughout; (4) Decorators: @Controller("/users"), @Get(), @Post(), @Body(), @Param() — declarative route definition; (5) Built-in features: validation (class-validator integration), serialization, exception filters, guards (auth), interceptors (logging, transform), microservices support, GraphQL, WebSockets, CQRS. NestJS shines for enterprise applications with large teams. Express is better for simple APIs or when you want minimal overhead and full control.

Pro Tip

Back up your answer with a specific project or situation. Saying 'In my last Node.js project, I used this when...' immediately makes your answer more credible and memorable.