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?
✗ Incorrect
Dependency injection means passing dependencies to routes or middleware instead of creating them inside, making code cleaner and easier to test.
How can you provide a database connection to all routes in Express?
✗ Incorrect
Attaching the database connection to the req object via middleware allows all routes to access it without recreating it.
Which of these is NOT a benefit of dependency injection?
✗ Incorrect
Dependency injection makes code easier to maintain, not harder.
What does this middleware do?
app.use((req, res, next) => { req.logger = logger; next(); });
✗ Incorrect
This middleware adds a logger instance to the req object so routes can use it.
Which pattern helps avoid global variables when injecting dependencies?
✗ Incorrect
Factory functions allow passing dependencies as arguments, avoiding global variables.
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.