lite-cors
v0.0.2
Published
A simple and lightweight CORS middleware for Node.js and Express.
Maintainers
Readme
lite-cors
A lightweight CORS middleware for Node.js applications. lite-cors provides essential Cross-Origin Resource Sharing (CORS) capabilities while maintaining a minimal footprint, making it a great alternative to the cors package.
Installation
Install lite-cors using npm:
npm install lite-corsUsage
Basic Setup
Import and use lite-cors in your Express application:
import express from "express";
import cors from "lite-cors";
const app = express();
// Enable CORS with default settings
app.use(cors());
app.get("/", (req, res) => {
res.json({ message: "CORS enabled!" });
});
app.listen(3000, () => console.log("Server running on port 3000"));Custom Configuration
You can customize lite-cors by passing an options object:
app.use(
cors({
origin: ["https://example.com", "https://another.com"],
methods: "GET,POST", // Allow only GET and POST requests
headers: "Content-Type, Authorization", // Allow specific headers
credentials: true, // Enable cookies and authorization headers
})
);Options
The middleware accepts the following options:
| Option | Type | Default Value | Description |
| ------------- | -------------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------- |
| origin | string, string[], Function | "*" | Specifies allowed origins. Accepts a string, an array of strings, or a function. |
| methods | string, string[] | ["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE"] | Specifies allowed HTTP methods. |
| headers | string, string[] | "*" | Specifies allowed request headers. |
| credentials | boolean | false | If true, includes Access-Control-Allow-Credentials: true in the response. |
Handling Preflight Requests
CORS preflight requests (OPTIONS method) are automatically handled:
app.options("/api", cors()); // Enable preflight for specific routeExample: Dynamic Origin
You can use a function to dynamically determine the allowed origin:
app.use(
cors({
origin: (origin, callback) => {
const allowedOrigins = ["https://trusted.com", "https://secure.com"];
if (!origin || allowedOrigins.includes(origin)) {
callback(null, origin);
} else {
callback(new Error("Not allowed by CORS"));
}
},
})
);Why Use lite-cors?
- 🏗 Lightweight: Smaller and more efficient than the
corspackage. - 🚀 Easy to Use: Simple API with intuitive configuration.
- 🔄 Flexible: Supports dynamic origin handling and custom options.
- ✅ Automatic Preflight Handling: Seamlessly processes
OPTIONSrequests.
License
MIT License
