LearnThatStack Ace your next interview
Nest.js · question
Question 3 of 50

What is the difference between @Injectable() and @Controller()?

beginner
← All Nest.js questions
Re-explain

@Injectable() marks a class as a provider that Nest can create and inject into other classes. @Controller() marks a class as a controller that handles HTTP requests, optionally under a route prefix such as 'users'.

Use @Injectable() for services, repositories and other classes that hold business logic. You list them in a module's providers array. Nest then injects them into the constructors of controllers and other providers in that module.

Use @Controller() for the classes that define your API endpoints. Their methods carry route decorators such as @Get() and @Post(), and you list the class in a module's controllers array.

Controllers can have services injected into them, but services are not controllers. Keep controllers thin. They read the request and hand the business logic and data access to services.

Rewriting in plainer words…

This answer doesn't lend itself to a diagram - it reads best . No credits were charged.

Why there's no diagram: “”

The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓

The diagram below the answer is the concept . Jump to it ↓

Tailored explanation · switch back to · ·
What should the new diagram focus on?
How well did you know this?
AI:

Saved in this browser - sign in to keep your review list.

How should your speech become text?

Listening… your words appear above as you speak - tap Stop when you're done.

Recording · cr - tap Stop & transcribe when you're done.

Transcribing with AI…

Voice:

Keep going - a few more words and AI can grade it.

Interview lens

Likely follow-ups, what you can say, and the weak answers to avoid.

Sign in free to open it Free account - the lens opens as soon as you're back.

Want a quick review of the fundamentals? See the Nest.js cheatsheet.

← Back to all Nest.js questions
Pro · $10/mo

44 of 50 Nest.js answers are in Pro.

Full answers, code samples, and AI explanations that go simpler or deeper. Cancel anytime.

  • Full answers + code
  • AI explanations, simpler or deeper
  • 1,000 AI credits / month
  • Cancel anytime