http-সার্ভার পাঠে req.url চেক করা if/else চেইনটি কাজ করে, কিন্তু এটি স্কেল করে না — একটি বাস্তব সাইটে ডজনখানেক রুট থাকে, URL থেকে ডেটা পড়ার প্রয়োজন হয়, আর প্রতি রুটে একাধিক HTTP মেথড সামলাতে হয়। Express একটি প্যাকেজ, npm দিয়ে ইনস্টল করা, যা এই সবকিছু আপনার জন্য সামলায়।
npm install expressকোর্সের আগের কাঁচা http ভার্সনের সাথে এটি তুলনা করুন:
const express = require('express')
const app = express()
app.get('/', (req, res) => {
res.send('Welcome home')
})
app.get('/about', (req, res) => {
res.send('About this site')
})
app.listen(3000, () => {
console.log('Server running at http://localhost:3000')
})কোনো ম্যানুয়াল req.url চেকিং নেই, ম্যানুয়ালি writeHead() আর end() কল করা নেই — app.get(path, handler) সরাসরি একটি রুট রেজিস্টার করে, আর res.send() নিজে থেকেই সঠিক Content-Type বের করে নেয়।
ভেতরে, Express এখনো এই কোর্সের আগের সেই একই http মডিউলের উপর তৈরি — এটি আপনার শেখা জিনিসের প্রতিস্থাপন নয়, এটি এর উপরে অনেক বেশি বন্ধুত্বপূর্ণ একটি স্তর। req আর res সম্পর্কে আপনার ইতিমধ্যে জানা সবকিছু এখনো প্রযোজ্য; Express শুধু এগুলোর চারপাশে res.send() আর res.json()-এর মতো সুবিধাজনক মেথড যোগ করে।
app.use((req, res) => {
res.status(404).send('Not found')
})প্রতিটি অন্য রুটের পরে বসানো, এটি এমন যেকোনো রিকোয়েস্ট ধরে যা এর উপরের কোনোটির সাথে মেলেনি — Express রুটগুলো যে ক্রমে ডিফাইন করা হয়েছে, উপর থেকে নিচে, সেই ক্রমে চেক করে।
Express Node.js-এর নিজের অংশ নয় — এটি Node-এ সার্ভার তৈরির জন্য সবচেয়ে বেশি ব্যবহৃত থার্ড-পার্টি প্যাকেজ, কিন্তু এটি বিল্ট-ইন কিছু নয়, অন্য যেকোনো একটির মতো একটি সাধারণ npm ডিপেন্ডেন্সি।
পরের কয়েকটি পাঠ এটিকে সঠিকভাবে গড়ে তোলে: একাধিক রুট, middleware, আর ব্রাউজার একটি রিকোয়েস্টের সাথে পাঠানো ডেটা পড়া।