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.