Middleware এবং Routing কনফিগারেশন

ExpressJS এর বেসিক কনফিগারেশন - এক্সপ্রেসজেএস (ExpressJS) - Web Development

312

ExpressJS একটি ফাস্ট, ফ্লেক্সিবল এবং মিনি মালফাংশনাল ফ্রেমওয়ার্ক যা মিডলওয়্যার এবং রাউটিং কনফিগারেশনের মাধ্যমে ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। এখানে আমরা Middleware এবং Routing কনফিগারেশন নিয়ে বিস্তারিত আলোচনা করব।


১. Middleware কনফিগারেশন

Middleware হল একটি ফাংশন যা HTTP রিকোয়েস্ট এবং রেসপন্সের মাঝে প্রসেসিং করে। এটি রিকোয়েস্ট অবজেক্ট (req), রেসপন্স অবজেক্ট (res), এবং পরবর্তী middleware বা রাউট হ্যান্ডলারকে (next) অ্যাক্সেস প্রদান করে।

ExpressJS-এ মিডলওয়্যার অনেক কাজ করতে পারে, যেমন:

  • রিকোয়েস্টের ভ্যালিডেশন করা
  • লগিং
  • অথেন্টিকেশন
  • রিকোয়েস্টের বডি পার্স করা (যেমন JSON, URL-encoded)
  • রেসপন্স কাস্টমাইজ করা

১.১. বেসিক Middleware ব্যবহার

const express = require('express');
const app = express();
const port = 3000;

// সাধারণ লগিং মিডলওয়্যার
app.use((req, res, next) => {
  console.log(`${req.method} request made to ${req.url}`);
  next();  // পরবর্তী মিডলওয়্যার বা রাউট হ্যান্ডলারকে কল করুন
});

// বেসিক রাউট
app.get('/', (req, res) => {
  res.send('Hello, Express with Middleware!');
});

// সার্ভার শুরু
app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});

এখানে, প্রতিটি রিকোয়েস্টের লগ দেখানো হবে। next() কল করার মাধ্যমে অ্যাপ্লিকেশন পরবর্তী মিডলওয়্যার বা রাউট হ্যান্ডলারকে প্রসেস করতে বলে।

১.২. বডি পার্সিং মিডলওয়্যার

ExpressJS-এ ইনপুট ডেটা পার্স করার জন্য মিডলওয়্যার ব্যবহার করা হয়। এটি বিশেষ করে POST রিকোয়েস্টে কার্যকর।

// JSON বডি পার্স করা
app.use(express.json());

// URL-encoded বডি পার্স করা
app.use(express.urlencoded({ extended: true }));

১.৩. Error Handling Middleware

এছাড়া, ExpressJS-এ কোনো ত্রুটি ঘটলে সেই ত্রুটি হ্যান্ডল করার জন্য একটি স্পেসিফিক মিডলওয়্যার ব্যবহার করা যায়:

// Error handling middleware
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).send('Something went wrong!');
});

এটি সব মিডলওয়্যার এবং রাউট হ্যান্ডলারের পরে রাখা উচিত। যখন কোনো ত্রুটি ঘটবে, এটি err অবজেক্টটি ক্যাচ করবে এবং একটি 500 স্ট্যাটাস কোড সহ ব্যবহারকারীকে রেসপন্স পাঠাবে।


২. Routing কনফিগারেশন

Routing হল রিকোয়েস্টের URL পাথ এবং HTTP মেথডের ভিত্তিতে নির্দিষ্ট ফাংশন বা মিডলওয়্যার চালানো। ExpressJS খুবই সহজে রাউট কনফিগার করার সুযোগ দেয়।

২.১. বেসিক Routing

ExpressJS-এ রাউট কনফিগার করার জন্য .get(), .post(), .put(), .delete() ইত্যাদি HTTP মেথড ব্যবহার করা হয়।

// GET রাউট
app.get('/', (req, res) => {
  res.send('Welcome to the Home Page');
});

// POST রাউট
app.post('/submit', (req, res) => {
  res.send('Form Submitted');
});

// PUT রাউট
app.put('/update', (req, res) => {
  res.send('Data Updated');
});

// DELETE রাউট
app.delete('/delete', (req, res) => {
  res.send('Data Deleted');
});

২.২. প্যারামিটার সহ Routing

ExpressJS রাউটের মধ্যে ডাইনামিক প্যারামিটার ব্যবহারের সুযোগ দেয়, যা : দিয়ে নির্দিষ্ট করা হয়।

// প্যারামিটার সহ রাউট
app.get('/user/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`User ID: ${userId}`);
});

এখানে :id হল একটি প্যারামিটার, এবং আপনি req.params.id এর মাধ্যমে এই প্যারামিটারটির মান অ্যাক্সেস করতে পারবেন।

২.৩. Query String সহ Routing

Query strings URL-এ প্যারামিটার হিসেবে পাঠানো হয়। ExpressJS এই query string values কে req.query দিয়ে অ্যাক্সেস করতে সাহায্য করে।

// Query String সহ রাউট
app.get('/search', (req, res) => {
  const query = req.query.q; // URL: /search?q=example
  res.send(`Search Query: ${query}`);
});

২.৪. Multiple Routes Handling

একই রাউটের জন্য একাধিক HTTP মেথড হ্যান্ডল করা যেতে পারে:

app.route('/user')
  .get((req, res) => {
    res.send('Get User');
  })
  .post((req, res) => {
    res.send('Create User');
  })
  .put((req, res) => {
    res.send('Update User');
  })
  .delete((req, res) => {
    res.send('Delete User');
  });

২.৫. Nested Routes (Sub-routing)

ExpressJS-এ রাউটগুলিকে নেস্ট করা সম্ভব, যাতে বিভিন্ন ফাংশন বা ফিচারের জন্য পৃথক রাউট ফাইল তৈরি করা যায়।

const express = require('express');
const app = express();
const userRouter = express.Router();

// /user রাউটের জন্য সাব-রাউট
userRouter.get('/', (req, res) => {
  res.send('Get User');
});

userRouter.post('/', (req, res) => {
  res.send('Create User');
});

// /user রাউটের সাথে সাব-রাউট যুক্ত করা
app.use('/user', userRouter);

// সার্ভার শুরু
app.listen(3000, () => {
  console.log('Server running on port 3000');
});

এখানে /user রাউটটি userRouter এর মাধ্যমে পরিচালিত হচ্ছে, এবং আপনি এটি সহজেই মডুলার আর্কিটেকচারে ভাগ করতে পারেন।


সারাংশ

Middleware এবং Routing হল ExpressJS অ্যাপ্লিকেশন ডেভেলপমেন্টের মূল উপাদান। মিডলওয়্যার রিকোয়েস্ট এবং রেসপন্সের মধ্যে প্রসেসিং করার জন্য ব্যবহৃত হয়, যেখানে রাউটিং রিকোয়েস্টের URL এবং HTTP মেথডের ভিত্তিতে সঠিক ফাংশন চালায়। মিডলওয়্যার ব্যবহার করে বিভিন্ন ফাংশন যেমন লগিং, বডি পার্সিং, অথেন্টিকেশন, এবং ত্রুটি হ্যান্ডলিং করা সম্ভব। রাউটিং কনফিগারেশন দ্বারা, আপনি অ্যাপ্লিকেশনে বিভিন্ন HTTP রিকোয়েস্ট হ্যান্ডল করতে পারবেন, ডাইনামিক প্যারামিটার এবং কুইরি স্ট্রিং ব্যবহার করে ডেটা অ্যাক্সেস করতে পারবেন, এবং সাব-রাউট তৈরি করে কোডকে মডুলার রাখতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...