Request এবং Response Object কনফিগার করা

KoaJS এর Context (ctx) এবং Request/Response Object - কোআজেএস (KoaJS) - Web Development

242

KoaJS একটি লঘু এবং কাস্টমাইজযোগ্য ফ্রেমওয়ার্ক যা Node.js পরিবেশে তৈরি। KoaJS-এ, Request (রিকোয়েস্ট) এবং Response (রেসপন্স) অবজেক্টগুলি অত্যন্ত গুরুত্বপূর্ণ। এই দুটি অবজেক্টে রিকোয়েস্ট এবং রেসপন্স সম্পর্কিত সমস্ত তথ্য থাকে এবং এগুলিকে কনফিগার করে আপনি রিকোয়েস্ট হ্যান্ডলিং এবং রেসপন্স সঠিকভাবে পরিচালনা করতে পারেন।

এখানে, আমরা দেখব কিভাবে KoaJS-এ Request এবং Response অবজেক্ট কনফিগার করা যায়, যেমন কাস্টম রিকোয়েস্ট হেডার সেট করা, কুয়েরি প্যারামিটার এবং বডি ডেটা এক্সেস করা, এবং রেসপন্সের হেডার, স্ট্যাটাস কোড এবং বডি কনফিগার করা।


Request Object কনফিগার করা

KoaJS-এ, ctx.request রিকোয়েস্ট সম্পর্কিত সমস্ত তথ্য ধারণ করে। আপনি রিকোয়েস্টের হেডার, পাথ, কুয়েরি প্যারামিটার, বডি, কুকি ইত্যাদি কনফিগার করতে পারেন। কিছু গুরুত্বপূর্ণ কনফিগারেশন নিচে দেওয়া হল:

১. রিকোয়েস্ট পাথ (Request Path) কনফিগার করা

ctx.request.path এর মাধ্যমে আপনি রিকোয়েস্টের URL পাথ অ্যাক্সেস করতে পারবেন।

app.use(async (ctx) => {
  console.log(`Requested Path: ${ctx.request.path}`);
  ctx.body = 'Path logged successfully';
});

২. রিকোয়েস্ট মেথড (Request Method) কনফিগার করা

ctx.request.method ব্যবহার করে আপনি রিকোয়েস্টের HTTP মেথড যেমন GET, POST, PUT, DELETE ইত্যাদি জানতে পারবেন।

app.use(async (ctx) => {
  console.log(`Requested Method: ${ctx.request.method}`);
  ctx.body = 'Method logged successfully';
});

৩. কুয়েরি প্যারামিটার (Query Parameters) এক্সেস করা

ctx.request.query এর মাধ্যমে আপনি URL এর কুয়েরি প্যারামিটারগুলি অ্যাক্সেস করতে পারেন। যেমন: /search?q=koa.

app.use(async (ctx) => {
  const query = ctx.request.query.q;
  console.log(`Search query: ${query}`);
  ctx.body = `Search query: ${query}`;
});

৪. রিকোয়েস্ট বডি (Request Body) এক্সেস করা

POST বা PUT রিকোয়েস্টের বডি ডেটা ctx.request.body এর মাধ্যমে অ্যাক্সেস করা যায়। koa-bodyparser মিডলওয়্যার ব্যবহার করে রিকোয়েস্ট বডি প্যার্স করতে হবে।

npm install koa-bodyparser
const bodyParser = require('koa-bodyparser');
app.use(bodyParser());

app.use(async (ctx) => {
  const { name, age } = ctx.request.body;
  console.log(`Name: ${name}, Age: ${age}`);
  ctx.body = `Name: ${name}, Age: ${age}`;
});

৫. রিকোয়েস্ট হেডার (Request Headers) এক্সেস করা

ctx.request.headers ব্যবহার করে আপনি রিকোয়েস্টের সমস্ত হেডার অ্যাক্সেস করতে পারেন।

app.use(async (ctx) => {
  console.log('Request Headers:', ctx.request.headers);
  ctx.body = 'Headers logged successfully';
});

Response Object কনফিগার করা

KoaJS-এ, ctx.response রেসপন্স সম্পর্কিত সমস্ত তথ্য ধারণ করে। আপনি রেসপন্সের হেডার, বডি, স্ট্যাটাস কোড এবং অন্যান্য কনফিগারেশন প্যারামিটার কনফিগার করতে পারেন। কিছু গুরুত্বপূর্ণ কনফিগারেশন নিচে দেওয়া হল:

১. রেসপন্স বডি (Response Body) কনফিগার করা

ctx.response.body এর মাধ্যমে আপনি রেসপন্সের বডি ডেটা সেট করতে পারেন।

app.use(async (ctx) => {
  ctx.response.body = 'Hello from Koa!';
});

২. রেসপন্স স্ট্যাটাস কোড (Response Status Code) কনফিগার করা

ctx.response.status এর মাধ্যমে আপনি রেসপন্সের HTTP স্ট্যাটাস কোড কনফিগার করতে পারেন, যেমন 200 (OK), 404 (Not Found), 500 (Internal Server Error) ইত্যাদি।

app.use(async (ctx) => {
  ctx.response.status = 404;  // Set status code to 404
  ctx.response.body = 'Page Not Found';
});

৩. রেসপন্স হেডার (Response Headers) কনফিগার করা

ctx.response.set() ব্যবহার করে আপনি কাস্টম রেসপন্স হেডার সেট করতে পারেন।

app.use(async (ctx) => {
  ctx.response.set('Content-Type', 'application/json');
  ctx.response.body = { message: 'Hello, Koa!' };
});

৪. রেসপন্স কুকি (Response Cookies) সেট করা

ctx.cookies.set() ব্যবহার করে আপনি কুকি সেট করতে পারেন।

app.use(async (ctx) => {
  ctx.cookies.set('user', 'john_doe', { httpOnly: true });
  ctx.response.body = 'Cookie has been set';
});

৫. কাস্টম হেডার অ্যাপেন্ড করা (Appending Headers)

ctx.response.append() ব্যবহার করে আপনি রেসপন্স হেডারের মধ্যে নতুন মান অ্যাপেন্ড করতে পারেন।

app.use(async (ctx) => {
  ctx.response.append('X-Custom-Header', 'CustomHeaderValue');
  ctx.response.body = 'Custom header appended';
});

Request এবং Response Object কনফিগার করার উদাহরণ

const Koa = require('koa');
const bodyParser = require('koa-bodyparser');
const app = new Koa();

app.use(bodyParser());

// Middleware to handle request and response configuration
app.use(async (ctx) => {
  // Request Configuration
  console.log(`Request Path: ${ctx.request.path}`);
  console.log(`Request Method: ${ctx.request.method}`);
  console.log(`Query Parameters:`, ctx.request.query);
  console.log(`Request Body:`, ctx.request.body);

  // Response Configuration
  ctx.response.status = 200; // Set Status Code
  ctx.response.set('Content-Type', 'application/json'); // Set custom headers
  ctx.response.body = { message: 'Request and Response successfully handled!' }; // Set Body
  
  // Set Cookie
  ctx.cookies.set('session_id', '12345', { httpOnly: true });
});

// Start the Koa server
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

এখানে:

  1. Request Object থেকে পাথ, মেথড, কুয়েরি প্যারামিটার এবং বডি ডেটা অ্যাক্সেস করা হচ্ছে।
  2. Response Object এর স্ট্যাটাস কোড, কাস্টম হেডার, এবং বডি ডেটা কনফিগার করা হচ্ছে।

সারাংশ

KoaJS-এ Request এবং Response অবজেক্ট কনফিগার করার মাধ্যমে আপনি রিকোয়েস্ট এবং রেসপন্স সম্পর্কিত সমস্ত তথ্য নিয়ন্ত্রণ করতে পারবেন। ctx.request অবজেক্ট ব্যবহার করে আপনি রিকোয়েস্টের পাথ, মেথড, কুয়েরি প্যারামিটার, বডি এবং অন্যান্য তথ্য অ্যাক্সেস করতে পারেন, এবং ctx.response অবজেক্ট ব্যবহার করে আপনি রেসপন্সের স্ট্যাটাস কোড, বডি, হেডার এবং কুকি কনফিগার করতে পারেন। KoaJS এর এই কনফিগারেশন ক্ষমতা আপনাকে শক্তিশালী, কাস্টমাইজেবল ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করবে।

Content added By
Promotion

Are you sure to start over?

Loading...