0
0
Expressframework~5 mins

Dependency injection in Express - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is dependency injection in Express?
Dependency injection is a way to provide parts (dependencies) that a piece of code needs, instead of creating them inside the code. In Express, it means passing services or objects to routes or middleware instead of hardcoding them.
Click to reveal answer
beginner
Why use dependency injection in Express apps?
It helps keep code clean and easy to test. You can swap parts without changing the main code, making your app more flexible and easier to maintain.
Click to reveal answer
intermediate
How can you inject a database connection into an Express route?
You can create the database connection outside the route and pass it as a parameter or attach it to the request object using middleware, so the route can use it without creating it again.
Click to reveal answer
intermediate
Example: What does this code do?

const app = express();
const service = new Service();
app.use((req, res, next) => {
  req.service = service;
  next();
});
This middleware adds a service instance to every request as req.service. Routes can then use req.service to access the service without creating it themselves.
Click to reveal answer
intermediate
What is a common pattern to inject dependencies in Express without global variables?
Use middleware to attach dependencies to the request object or use factory functions that create routes with dependencies passed as arguments.
Click to reveal answer
What is the main goal of dependency injection in Express?
ATo pass dependencies to routes instead of creating them inside
BTo make routes slower
CTo avoid using middleware
DTo hardcode all dependencies inside routes
How can you provide a database connection to all routes in Express?
AUse global variables only
BCreate a new connection inside each route
CAttach the connection to req object using middleware
DIgnore the connection and fetch data directly
Which of these is NOT a benefit of dependency injection?
AMore flexible code
BHarder to maintain code
CEasier testing
DBetter separation of concerns
What does this middleware do? app.use((req, res, next) => { req.logger = logger; next(); });
ACreates a new logger for each request
BStops the request from continuing
CRemoves the logger from requests
DAttaches a logger instance to each request
Which pattern helps avoid global variables when injecting dependencies?
AUsing factory functions to create routes with dependencies
BCreating dependencies inside routes
CIgnoring dependencies
DUsing global variables everywhere
Explain how dependency injection improves testing in Express applications.
Think about how you can swap parts when testing.
You got /3 concepts.
    Describe two ways to inject dependencies into Express routes.
    One way involves middleware, the other involves functions that return routes.
    You got /2 concepts.