ExpressIntermediate
Express CORS
ক্রস-অরিজিন request, cors middleware, options — CORS বাংলায়।
10টি অংশবাংলা ভাষায়
CORS (Cross-Origin Resource Sharing) হলো browser-এর safety mechanism — যেটি ভিন্ন origin থেকে request নিয়ন্ত্রণ করে। Backend-এ CORS সঠিকভাবে set না করলে frontend API call ব্যর্থ হবে।
CORS Problem
Browser (localhost:3000)
│
│ fetch('http://localhost:5000/api/users')
▼
Backend (localhost:5000)
│
└──► ❌ 403 blocked! Origin mismatch
(browser সতর্ক করে দেয়)Fix — cors middleware
npm install corsconst cors = require("cors");
const app = express();
// সব origin allow (basic — dev-এর জন্য)
app.use(cors());Restrict Origin
// নির্দিষ্ট origin allow
const allowedOrigins = [
"http://localhost:3000",
"https://myapp.vercel.app",
];
app.use(cors({
origin: function (origin, callback) {
if (!origin || allowedOrigins.includes(origin)) {
callback(null, true);
} else {
callback(new Error("Not allowed by CORS"));
}
},
credentials: true, // cookies/headers পাঠানোর জন্য
methods: ["GET", "POST", "PUT", "DELETE"],
allowedHeaders: ["Content-Type", "Authorization"],
}));Per-route CORSjavascript
javascript
// শুধু নির্দিষ্ট route-এ
const cors = require("cors");
app.get("/api/public", cors(), (req, res) => {
res.json({ public: true });
});Best Practice
Production-এ origin: '*' দেবেন না। আপনার frontend domainগুলো স্পষ্টভাবে list করুন এবং credentials: true শুধু দরকার হলে দিন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।