What is the Controller pattern in Express route handlers?
It is a way to organize code by separating route logic into controller functions. Controllers handle requests and responses, keeping routes clean and focused.
Click to reveal answer
beginner
Why use controllers instead of writing all logic inside routes?
Controllers make code easier to read, test, and maintain by separating concerns. Routes just direct traffic, controllers do the work.
Click to reveal answer
beginner
How do you define a controller function in Express?
A controller is a function that takes (req, res) parameters and handles the request, like sending a response or calling next().
Click to reveal answer
beginner
Example: What does this controller do?
<pre>const getUser = (req, res) => { res.send('User info'); };</pre>
It sends a simple text response 'User info' when called. This controller handles a request by replying with user information.
Click to reveal answer
beginner
How do you connect a controller to a route in Express?
You import or define the controller function and pass it as the second argument to the route method, like app.get('/path', controllerFunction).
Click to reveal answer
What is the main role of a controller in Express?
AHandle the logic for requests and responses
BDefine the URL paths for routes
CManage database connections
DServe static files
✗ Incorrect
Controllers handle the logic for processing requests and sending responses.
Where should you put the code that sends a response to the client?
AIn the middleware before the route
BInside the route definition only
CInside the controller function
DIn the server setup file
✗ Incorrect
Controllers are responsible for sending responses to keep routes clean.
How do you use a controller in an Express route?
APass the controller function as the route handler
BCall the controller inside the route handler manually
CControllers are not used with routes
DControllers replace the Express app
✗ Incorrect
You pass the controller function directly as the route handler.
Which of these is a benefit of using controllers?
AAutomatically creates routes
BMakes the server run faster
CHandles user authentication
DImproves code organization and readability
✗ Incorrect
Controllers help organize code and make it easier to read and maintain.
What parameters does a typical Express controller function receive?
Aapp and router
Breq and res
Cnext and error
Durl and method
✗ Incorrect
Controllers receive the request (req) and response (res) objects.
Explain how the Controller pattern helps organize Express route handlers.
Think about how splitting tasks makes code easier to manage.
You got /4 concepts.
Describe the steps to create and use a controller function in an Express app.
Focus on function creation and connecting it to routes.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using the controller pattern in Express route handlers?
easy
A. To separate route logic from routing setup for better organization
B. To combine all route handlers into a single file
C. To directly write SQL queries inside route handlers
D. To avoid using middleware functions in routes
Solution
Step 1: Understand the controller pattern concept
The controller pattern means moving the logic that handles requests out of the route definitions into separate functions or files.
Step 2: Identify the benefit of separation
This separation improves code organization, making it easier to read and maintain.
Final Answer:
To separate route logic from routing setup for better organization -> Option A
Quick Check:
Controller pattern = separation of concerns [OK]
Hint: Controllers keep route files clean and logic separate [OK]
Common Mistakes:
Thinking controllers combine all routes in one file
C. Calling userController.getUser() immediately instead of passing function
D. Route path should be '/users' not '/user'
Solution
Step 1: Check how controller function is passed
The code calls userController.getUser() immediately, which runs the function and passes its result, not the function itself.
Step 2: Understand correct usage
Express expects a function reference as the route handler, so it should be userController.getUser without parentheses.
Final Answer:
Calling userController.getUser() immediately instead of passing function -> Option C
Quick Check:
Pass function reference, not call it [OK]
Hint: Don't add () when passing controller to route [OK]
Common Mistakes:
Calling controller function instead of passing it
Confusing res.json and res.send (both valid here)
Assuming route path naming causes error
5. You want to organize your Express app using the controller pattern. You have multiple routes for users: getUser, createUser, and deleteUser. Which approach best follows the controller pattern for clean code?
hard
A. Put all route definitions and logic inside a single routes.js file without controllers
B. Define all user-related functions in a separate userController.js file and import them in the router file
C. Write all user route handlers directly inside the main app.js file
D. Use inline anonymous functions for each route in the router file
Solution
Step 1: Understand controller pattern best practice
Controllers group related route logic into separate files or modules to keep code organized and reusable.
Step 2: Evaluate options for clean code
Defining all user-related functions in a dedicated userController.js file and importing them into the router file follows the pattern well.
Final Answer:
Define all user-related functions in a separate userController.js file and import them in the router file -> Option B
Quick Check:
Separate logic into controller files [OK]
Hint: Group related handlers in controller files, import in routes [OK]
Common Mistakes:
Putting all logic in main app file making it messy
Mixing routes and logic in one file without separation
Using anonymous functions inline reduces reusability
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.