KoaJS একটি লঘু এবং শক্তিশালী ওয়েব ফ্রেমওয়ার্ক, যা Node.js প্ল্যাটফর্মে ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত হয়। KoaJS-এর মাধ্যমে আপনি সহজেই HTTP রিকোয়েস্টের body, headers এবং query parameters অ্যাক্সেস করতে পারেন। KoaJS-এ রিকোয়েস্টের বিভিন্ন অংশের সাথে কাজ করার জন্য কিছু সাধারণ মিডলওয়্যার ব্যবহার করা হয়। এই টিউটোরিয়ালে, আমরা কিভাবে KoaJS-এ request body, headers এবং query parameters অ্যাক্সেস করা যায় তা আলোচনা করব।
Request Body অ্যাক্সেস করা
KoaJS-এ রিকোয়েস্টের body অ্যাক্সেস করতে koa-bodyparser মিডলওয়্যার ব্যবহার করা হয়। এটি JSON, URL-encoded এবং অন্যান্য ফরম্যাটে পাঠানো ডেটা পার্স করে Koa অ্যাপ্লিকেশনে সঠিকভাবে অ্যাক্সেস করার সুযোগ দেয়।
১. koa-bodyparser ইনস্টল করা
প্রথমে আপনাকে koa-bodyparser ইনস্টল করতে হবে:
npm install koa-bodyparser
২. koa-bodyparser ব্যবহার করা
এখন আপনি আপনার অ্যাপ্লিকেশনে koa-bodyparser মিডলওয়্যারটি ব্যবহার করতে পারেন এবং request body অ্যাক্সেস করতে পারবেন। নিচে একটি উদাহরণ দেওয়া হল:
const Koa = require('koa');
const Router = require('koa-router');
const bodyParser = require('koa-bodyparser');
const app = new Koa();
const router = new Router();
// koa-bodyparser মিডলওয়্যার ব্যবহার করা
app.use(bodyParser());
// POST রিকোয়েস্ট হ্যান্ডল করা
router.post('/submit', (ctx) => {
const requestBody = ctx.request.body; // request body অ্যাক্সেস করা
ctx.body = {
message: 'Data received successfully!',
data: requestBody
};
});
// রাউট মাউন্ট করা
app
.use(router.routes())
.use(router.allowedMethods());
// অ্যাপ চালু করা
app.listen(3000, () => {
console.log('Koa app is running on http://localhost:3000');
});
এখানে /submit রুটে একটি POST রিকোয়েস্ট পাঠানো হলে, koa-bodyparser মিডলওয়্যার request body পার্স করে এবং তা ctx.request.body মাধ্যমে অ্যাক্সেস করা হয়।
Request Headers অ্যাক্সেস করা
KoaJS-এ রিকোয়েস্টের headers অ্যাক্সেস করা খুব সহজ। আপনি ctx.headers বা ctx.request.headers ব্যবহার করে headers অ্যাক্সেস করতে পারেন।
১. Request Headers অ্যাক্সেস করা
এখানে একটি উদাহরণ দেওয়া হল, যেখানে রিকোয়েস্ট হেডারে পাঠানো একটি কাস্টম header (x-custom-header) অ্যাক্সেস করা হচ্ছে:
router.get('/headers', (ctx) => {
const customHeader = ctx.headers['x-custom-header']; // headers থেকে কাস্টম header অ্যাক্সেস করা
ctx.body = {
message: 'Header received successfully!',
customHeader: customHeader
};
});
এই কোডের মাধ্যমে, যদি রিকোয়েস্টে x-custom-header নামে একটি header পাঠানো হয়, তাহলে সেটি ctx.headers দিয়ে অ্যাক্সেস করা যাবে।
Query Parameters অ্যাক্সেস করা
KoaJS-এ query parameters অ্যাক্সেস করতে ctx.query ব্যবহার করা হয়। এটি URL থেকে কুয়েরি প্যারামিটারকে সহজভাবে অ্যাক্সেস করতে সাহায্য করে।
১. Query Parameters অ্যাক্সেস করা
এখানে একটি উদাহরণ দেওয়া হল যেখানে URL এর কুয়েরি প্যারামিটার name অ্যাক্সেস করা হচ্ছে:
router.get('/search', (ctx) => {
const queryParam = ctx.query.name; // query parameters থেকে 'name' অ্যাক্সেস করা
ctx.body = {
message: 'Query parameter received successfully!',
name: queryParam
};
});
যদি আপনি http://localhost:3000/search?name=John রিকোয়েস্ট পাঠান, তাহলে ctx.query.name এর মাধ্যমে John মানটি অ্যাক্সেস করা যাবে।
পূর্ণ কোড উদাহরণ
একটি সম্পূর্ণ কোড উদাহরণ দেওয়া হল যা body, headers এবং query parameters একসাথে অ্যাক্সেস করে:
const Koa = require('koa');
const Router = require('koa-router');
const bodyParser = require('koa-bodyparser');
const app = new Koa();
const router = new Router();
// koa-bodyparser মিডলওয়্যার ব্যবহার করা
app.use(bodyParser());
// POST রিকোয়েস্ট হ্যান্ডল করা (Request Body)
router.post('/submit', (ctx) => {
const requestBody = ctx.request.body; // request body অ্যাক্সেস করা
ctx.body = {
message: 'Data received successfully!',
data: requestBody
};
});
// GET রিকোয়েস্ট হ্যান্ডল করা (Headers)
router.get('/headers', (ctx) => {
const customHeader = ctx.headers['x-custom-header']; // headers থেকে কাস্টম header অ্যাক্সেস করা
ctx.body = {
message: 'Header received successfully!',
customHeader: customHeader
};
});
// GET রিকোয়েস্ট হ্যান্ডল করা (Query Parameters)
router.get('/search', (ctx) => {
const queryParam = ctx.query.name; // query parameters থেকে 'name' অ্যাক্সেস করা
ctx.body = {
message: 'Query parameter received successfully!',
name: queryParam
};
});
// রাউট মাউন্ট করা
app
.use(router.routes())
.use(router.allowedMethods());
// অ্যাপ চালু করা
app.listen(3000, () => {
console.log('Koa app is running on http://localhost:3000');
});
এই কোডে:
/submitরুটেPOSTরিকোয়েস্টে body ডেটা পাঠানো হয় এবং তাctx.request.bodyদিয়ে অ্যাক্সেস করা হয়।/headersরুটে কাস্টম header (x-custom-header) পাঠানো হলে তাctx.headersদিয়ে অ্যাক্সেস করা হয়।/searchরুটে কুয়েরি প্যারামিটারnameপাঠানো হলে তাctx.query.nameদিয়ে অ্যাক্সেস করা হয়।
সারাংশ
KoaJS-এ request body, headers, এবং query parameters অ্যাক্সেস করা খুবই সহজ। koa-bodyparser মিডলওয়্যার ব্যবহার করে আপনি সহজে POST রিকোয়েস্টের body অ্যাক্সেস করতে পারেন, ctx.headers দিয়ে হেডারগুলোর তথ্য নিতে পারেন এবং ctx.query দিয়ে URL এর কুয়েরি প্যারামিটার অ্যাক্সেস করতে পারেন। KoaJS এই সবগুলো কাজ খুবই সহজ এবং পরিষ্কারভাবে করতে সাহায্য করে।
Read more