First, 'Request received' logs before calling next().
Step 2: Understand next() behavior
After next() completes, 'Request processed' logs.
Final Answer:
Request received\nRequest processed -> Option B
Quick Check:
Logs before and after next() run in order [OK]
Hint: Logs before and after next() run in order [OK]
Common Mistakes:
Assuming next() blocks logging after it
Thinking logs reverse order
Ignoring that next() allows later code to run
4. Identify the error in this middleware code:
function authMiddleware(req, res, next) {
if (!req.user) {
res.status(401).send('Unauthorized');
}
next();
}
medium
A. req.user check should be after next()
B. Missing call to next() inside if block
C. res.status should be res.sendStatus
D. next() is called even after sending response
Solution
Step 1: Check flow after sending response
If !req.user, response is sent but next() still runs.
Step 2: Understand middleware flow control
Calling next() after sending response can cause errors or duplicate handling.
Final Answer:
next() is called even after sending response -> Option D
Quick Check:
Stop calling next() after response sent [OK]
Hint: Don't call next() after sending response [OK]
Common Mistakes:
Calling next() unconditionally after response
Not returning after sending response
Misplacing user check after next()
5. You want to add middleware that logs the request time and then modifies the request object to add a requestId before GraphQL resolvers run. Which middleware code correctly achieves this?
hard
A. function middleware(req, res, next) {
req.requestTime = Date.now();
next();
res.requestId = Math.random().toString(36).slice(2);
}
B. function middleware(req, res) {
req.requestTime = Date.now();
next();
req.requestId = Math.random().toString(36).slice(2);
}
C. function middleware(req, res, next) {
req.requestTime = Date.now();
req.requestId = Math.random().toString(36).slice(2);
next();
}
D. function middleware(req, res, next) {
next();
req.requestTime = Date.now();
req.requestId = Math.random().toString(36).slice(2);
}
Solution
Step 1: Ensure middleware modifies request before next()
Properties must be set on req before calling next() to be available in resolvers.
Step 2: Check correct use of next() and property assignment
function middleware(req, res, next) {
req.requestTime = Date.now();
req.requestId = Math.random().toString(36).slice(2);
next();
} sets both properties before next(), ensuring proper order and correct object.
Final Answer:
function middleware(req, res, next) {
req.requestTime = Date.now();
req.requestId = Math.random().toString(36).slice(2);
next();
} -> Option C
Quick Check:
Set req properties before next() call [OK]
Hint: Set req properties before next() to pass data [OK]
Common Mistakes:
Calling next() before setting properties
Modifying res instead of req for request data
Missing next() parameter or call
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.