Google News
logo
Koa.js - Interview Questions
How do you handle CORS in Koa.js?
Cross-Origin Resource Sharing (CORS) is a security feature implemented by web browsers to control which webpages can make requests to a given resource. If a web application hosted on one domain (origin) tries to make a request to a resource on a different domain, the browser may block the request by default for security reasons. To handle CORS in a Koa.js application, you can use the koa2-cors middleware, which simplifies the process.

Here are the steps to handle CORS in Koa.js using the koa2-cors middleware :

Install the koa2-cors Middleware :

* Install the koa2-cors middleware using npm or yarn.
npm install koa2-cors?

Use the koa2-cors Middleware in Your Koa Application :

* Import the koa2-cors middleware and use it in your Koa application. Make sure to use it before your route handlers to ensure that CORS headers are set appropriately.
const Koa = require('koa');
const cors = require('koa2-cors');
const app = new Koa();

// Use the CORS middleware
app.use(cors());

// Your route handlers go here

// Start the Koa application
const port = 3000;
app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});?
Configure CORS Options (Optional) : You can provide configuration options to the koa2-cors middleware to customize its behavior. For example, you can specify allowed origins, methods, headers, and other CORS-related settings.
// Example with custom configuration
app.use(
  cors({
    origin: 'http://example.com', // Allow requests from this origin
    methods: ['GET', 'POST', 'PUT'], // Allow specified HTTP methods
    allowedHeaders: ['Authorization'], // Allow specified headers
    credentials: true, // Allow credentials (cookies, authorization headers)
  })
);?

You can adjust these options based on your specific requirements and security policies.


Handling Preflight Requests : For certain types of requests, the browser may send a preflight request (OPTIONS) to check if the server supports the actual request. The koa2-cors middleware automatically handles preflight requests.
// Example of handling preflight requests
app.use(async (ctx, next) => {
  if (ctx.method === 'OPTIONS') {
    ctx.status = 200;
  } else {
    await next();
  }
});?

This code snippet sets a 200 status code for OPTIONS requests, allowing the browser to proceed with the actual request.
Advertisement