Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is CORS in web development?
CORS stands for Cross-Origin Resource Sharing. It is a security feature that allows or blocks web pages from making requests to a different domain than the one that served the web page.
Click to reveal answer
beginner
How do you install the CORS middleware in an Express app?
You install it using npm with the command <code>npm install cors</code>. Then you import it in your app with <code>import cors from 'cors'</code> or <code>const cors = require('cors')</code>.
Click to reveal answer
beginner
How do you enable CORS for all routes in an Express app?
You use the CORS middleware globally by adding app.use(cors()) before your routes. This allows all origins to access your server.
Click to reveal answer
intermediate
How can you restrict CORS to allow only specific origins?
You pass an options object to the CORS middleware like app.use(cors({ origin: 'https://example.com' })). This allows only requests from that origin.
Click to reveal answer
intermediate
What is the purpose of the optionsSuccessStatus option in CORS middleware?
It sets the status code for successful OPTIONS preflight requests. Some browsers expect a 200 status instead of the default 204, so you can set optionsSuccessStatus: 200 to fix issues.
Click to reveal answer
What does the CORS middleware do in an Express app?
AAllows or blocks cross-origin requests
BHandles database connections
CManages user sessions
DServes static files
✗ Incorrect
CORS middleware controls which external domains can access your server resources.
How do you apply CORS middleware to all routes in Express?
Aapp.post(cors())
Bapp.get(cors())
Capp.use(cors())
Dapp.listen(cors())
✗ Incorrect
Using app.use(cors()) applies the middleware globally to all routes.
Which npm command installs the CORS middleware?
Anpm install express
Bnpm install helmet
Cnpm install body-parser
Dnpm install cors
✗ Incorrect
The CORS middleware is installed with npm install cors.
How do you restrict CORS to only allow requests from 'https://myapp.com'?
Aapp.use(cors({ credentials: true }))
Bapp.use(cors({ origin: 'https://myapp.com' }))
Capp.use(cors({ methods: 'https://myapp.com' }))
Dapp.use(cors({ headers: 'https://myapp.com' }))
✗ Incorrect
The origin option specifies which domain is allowed.
What HTTP method is commonly used for CORS preflight requests?
AOPTIONS
BPOST
CGET
DPUT
✗ Incorrect
Browsers send OPTIONS requests to check permissions before the actual request.
Explain how to set up CORS middleware in an Express app to allow all origins.
Think about the steps from installation to applying middleware globally.
You got /4 concepts.
Describe how to configure CORS middleware to restrict access to a specific domain.
Focus on the options object passed to the middleware.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of using the cors middleware in an Express app?
easy
A. To allow or restrict which websites can access your server resources
B. To handle database connections securely
C. To serve static files like images and CSS
D. To log HTTP requests for debugging
Solution
Step 1: Understand what CORS controls
CORS stands for Cross-Origin Resource Sharing and it controls which external websites can access your server's resources.
Step 2: Identify the role of the middleware
The cors middleware in Express is used to set these access rules to allow or restrict cross-origin requests.
Final Answer:
To allow or restrict which websites can access your server resources -> Option A
Quick Check:
CORS controls access permissions = B [OK]
Hint: Remember CORS controls cross-site access permissions [OK]
Common Mistakes:
Confusing CORS with logging or static file serving
Thinking CORS manages database security
Assuming CORS is for request logging
2. Which of the following is the correct way to enable CORS for all routes in an Express app?
easy
A. app.use(cors());
B. app.use(cors);
C. app.cors();
D. app.enable(cors);
Solution
Step 1: Recall the syntax for middleware usage
In Express, middleware functions are passed as functions, so you must call cors() to get the middleware function.
Step 2: Identify the correct usage
app.use(cors()); correctly calls the cors function and applies it to all routes.
Final Answer:
app.use(cors()); -> Option A
Quick Check:
Middleware needs function call = A [OK]
Hint: Always call middleware functions with parentheses [OK]
Common Mistakes:
Forgetting parentheses after cors
Using app.cors() which is not a method
Trying app.enable(cors) which is invalid
3. Given this Express code snippet, what will be the CORS behavior?
import express from 'express';
import cors from 'cors';
const app = express();
app.use(cors({ origin: 'https://example.com' }));
app.get('/data', (req, res) => {
res.json({ message: 'Hello' });
});
app.listen(3000);
medium
A. Only POST requests from any origin are allowed
B. All origins are allowed to access /data
C. Only requests from https://example.com will be allowed by browsers
D. No origins are allowed, CORS is disabled
Solution
Step 1: Analyze the CORS options
The cors middleware is configured with { origin: 'https://example.com' }, which restricts access to that origin only.
Step 2: Understand the effect on requests
Browsers will allow cross-origin requests only from https://example.com. Requests from other origins will be blocked by the browser.
Final Answer:
Only requests from https://example.com will be allowed by browsers -> Option C
Quick Check:
Origin option restricts access = D [OK]
Hint: Check the origin option to know allowed sites [OK]
Common Mistakes:
Assuming all origins are allowed by default
Thinking CORS disables all requests without origin option
Confusing HTTP methods with origin restrictions
4. Identify the error in this Express CORS setup:
import express from 'express';
import cors from 'cors';
const app = express();
app.use(cors);
app.get('/', (req, res) => res.send('Hi'));
app.listen(3000);
medium
A. app.listen should be called before app.use
B. cors should be imported from 'express-cors' package
C. No error, this code works fine
D. Missing parentheses after cors in app.use
Solution
Step 1: Check how cors middleware is applied
The code uses app.use(cors); but cors is a function that must be called to return middleware.
Step 2: Correct usage requires parentheses
The correct syntax is app.use(cors()); to apply the middleware properly.
Final Answer:
Missing parentheses after cors in app.use -> Option D
Quick Check:
Middleware must be called = C [OK]
Hint: Middleware needs parentheses to run correctly [OK]
Common Mistakes:
Forgetting to call cors() as a function
Importing cors from wrong package
Thinking app.listen order affects middleware
5. You want to allow CORS only for GET and POST requests from https://myapp.com but block others. Which setup correctly achieves this?
hard
A. app.use(cors({ origin: '*', methods: ['GET', 'POST'] }));
B. app.use(cors({ origin: 'https://myapp.com', methods: ['GET', 'POST'] }));
C. app.use(cors({ origin: 'https://myapp.com' })); // methods ignored
D. app.use(cors({ methods: ['GET', 'POST'] }));
Solution
Step 1: Understand the origin restriction
To allow only https://myapp.com, set origin: 'https://myapp.com'.
Step 2: Restrict HTTP methods
Use methods: ['GET', 'POST'] to allow only those request types.
Step 3: Combine both options correctly
app.use(cors({ origin: 'https://myapp.com', methods: ['GET', 'POST'] })); correctly sets both origin and methods to restrict access as required.
Final Answer:
app.use(cors({ origin: 'https://myapp.com', methods: ['GET', 'POST'] })); -> Option B
Quick Check:
Origin + methods options restrict access = A [OK]
Hint: Set both origin and methods to restrict CORS properly [OK]
Common Mistakes:
Using '*' origin allows all sites
Ignoring methods option when restricting HTTP verbs