Route Parameters এবং Query Strings হ্যান্ডলিং

Routing এবং HTTP Methods - এক্সপ্রেসজেএস (ExpressJS) - Web Development

265

ExpressJS এর মাধ্যমে আপনি URL এর মধ্যে ডাইনামিক ডেটা পাঠাতে পারেন, যা রাউট প্যারামিটার (Route Parameters) এবং কুয়েরি স্ট্রিং (Query Strings) হিসেবে পরিচিত। এগুলি ব্যবহার করে আপনি রাউটের সাথে সম্পর্কিত বিভিন্ন ভ্যালু সংগ্রহ করতে এবং সেগুলি ব্যবহার করতে পারবেন।


১. Route Parameters (রাউট প্যারামিটার)

রাউট প্যারামিটার হলো URL এর অংশ যা ডাইনামিক ডেটা ধারণ করে এবং ExpressJS এ এটি : (কলন) চিহ্নের মাধ্যমে চিহ্নিত করা হয়।

১.১. রাউট প্যারামিটার সেটআপ

একটি সাধারণ রাউট প্যারামিটার সেটআপ করা হয় এইভাবে:

app.get('/user/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`User ID: ${userId}`);
});

এখানে, /user/:id রাউটটি একটি ডাইনামিক প্যারামিটার গ্রহণ করে, যেখানে :id হলো একটি প্যারামিটার। যখন ব্যবহারকারী http://localhost:3000/user/123 এ যাবে, তখন 123 req.params.id এর মাধ্যমে অ্যাক্সেস করা যাবে।

১.২. রাউট প্যারামিটার ব্যবহার

উদাহরণ:

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

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

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});

এখন, http://localhost:3000/user/123 URL এ গেলে আপনি "User ID is: 123" দেখবেন।

১.৩. একাধিক রাউট প্যারামিটার

আপনি একাধিক প্যারামিটারও ব্যবহার করতে পারেন:

app.get('/user/:id/:action', (req, res) => {
  const { id, action } = req.params;
  res.send(`User ID: ${id}, Action: ${action}`);
});

এখানে, আপনি /user/123/edit এ গিয়ে "User ID: 123, Action: edit" দেখতে পাবেন।


২. Query Strings (কুয়েরি স্ট্রিং)

কুয়েরি স্ট্রিং হল URL এর অংশ, যা সাধারণত ? চিহ্ন দিয়ে শুরু হয় এবং এক বা একাধিক কুয়েরি প্যারামিটার দিয়ে গঠিত হয়। ExpressJS তে কুয়েরি স্ট্রিংগুলো req.query অবজেক্টের মাধ্যমে অ্যাক্সেস করা যায়।

২.১. কুয়েরি স্ট্রিং ব্যবহার

উদাহরণ:

app.get('/search', (req, res) => {
  const query = req.query.q;
  res.send(`Search term: ${query}`);
});

এখানে, /search?q=express URL এ গেলে q প্যারামিটারটি req.query.q দিয়ে অ্যাক্সেস করা যাবে, এবং আপনি "Search term: express" দেখতে পাবেন।

২.২. একাধিক কুয়েরি প্যারামিটার

আপনি একাধিক কুয়েরি প্যারামিটারও পাঠাতে পারেন, যেমন:

app.get('/filter', (req, res) => {
  const { category, price } = req.query;
  res.send(`Category: ${category}, Price: ${price}`);
});

এখন, আপনি /filter?category=electronics&price=100 এ গেলে আপনি "Category: electronics, Price: 100" দেখতে পাবেন।


৩. Route Parameters এবং Query Strings একসাথে ব্যবহার

রাউট প্যারামিটার এবং কুয়েরি স্ট্রিং একসাথে ব্যবহার করা সম্ভব, এবং আপনি সহজেই এই দুইটি মিশিয়ে কাজ করতে পারবেন।

উদাহরণ:

app.get('/user/:id', (req, res) => {
  const userId = req.params.id;
  const filter = req.query.filter;
  res.send(`User ID: ${userId}, Filter: ${filter}`);
});

এখানে, আপনি /user/123?filter=active URL এ গিয়ে "User ID: 123, Filter: active" দেখতে পাবেন।


৪. ExpressJS এর Middleware ব্যবহার করে Route Parameters এবং Query Strings হ্যান্ডলিং

যদি আপনাকে রাউট প্যারামিটার এবং কুয়েরি স্ট্রিং থেকে কোন নির্দিষ্ট ভ্যালু পরীক্ষা করতে হয়, তবে আপনি ExpressJS এর middleware ব্যবহার করতে পারেন।

উদাহরণ:

// Middleware function to check query string
function checkQuery(req, res, next) {
  if (req.query.q) {
    console.log('Query string exists');
    next(); // Continue to the route handler
  } else {
    res.send('No query string provided');
  }
}

app.get('/search', checkQuery, (req, res) => {
  const query = req.query.q;
  res.send(`Search term: ${query}`);
});

এখানে, যদি কুয়েরি প্যারামিটার q উপস্থিত থাকে, তাহলে middleware চলবে এবং রাউটের হ্যান্ডলার কাজ করবে।


সারাংশ

ExpressJS এ রাউট প্যারামিটার এবং কুয়েরি স্ট্রিং ব্যবহার খুবই সহজ এবং শক্তিশালী। রাউট প্যারামিটারগুলি URL এর অংশ হিসেবে ডাইনামিক ডেটা গ্রহণ করতে ব্যবহৃত হয়, এবং কুয়েরি স্ট্রিংগুলি সাধারণত ফিল্টার বা সার্চ তথ্য পাঠানোর জন্য ব্যবহৃত হয়। আপনি এদেরকে একসাথে ব্যবহার করে আরও ফ্লেক্সিবল এবং শক্তিশালী ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন। ExpressJS তে req.params এবং req.query ব্যবহার করে সহজেই এই ডেটাগুলি এক্সেস করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...