সার্ভার থেকে ব্রাউজার বা ক্লায়েন্ট মেশিনকে ডেটা বা রেস্পন্স পাঠাতে আমরা listen() এর req,res হতে res কে ব্যবহার করবো। আবার ক্লায়েন্ট এর থেকে রিকোয়েস্ট নিতে req কে ব্যবহার করবো এগুলো আমরা প্রাক্টিক্যালি দেখবো সামনে যখন প্রজেক্ট করবো ঐগুলো অটোমেটিক্যালি হয়ে যাবে।
request ও response অবজেক্ট
app.get('/',(req,res) =>{
})
এর আগে আমরা যখন express দিয়ে ব্রাউজার বা api তে রিকোয়েস্ট পাঠিয়েছি তখন কলব্যাক ফাংশন হিসাবে আমরা reqএবং res নামে দুইটা প্যারামিটার নিয়েছি এই req কে আমরা আমাদের url এ রিকোয়েস্ট তথ্য দেখার জন্য ব্যবহার করা হয়। আর রিকোয়েস্ট থেকে কি রেসপন্স সার্ভার আমাদের দিচ্ছে তা দেখার জন্য ব্যবহার করা হয়।
রিকোয়েস্ট :
মনেকরি আমাদের ইউআরএল এর মাদ্ধমে ইউজার কিছু name,email ইত্যাদি ডেটা সাবমিট করছে এটা req অবজেক্ট দিয়ে ওই name,email এর ভ্যালু পেতে পারি
রেসপন্স :
ইউজার name,email ইত্যাদি ডেটা সাবমিট করার পর আমাদের সার্ভার ডেটা গুলো নিয়ে আমাদের কি রেসপন্স ডেটা দিচ্ছে যেমন ডেটা ভ্যালিড হলে ইন্সার্ট সাকসেস আর ইনভ্যালিড হলে ইনভ্যালিড মেসেজ আর কোন এরর হলে এরর ইনফরমেশন এ জাতীয় আরো অনেক ডেটা প্রদান করে
Request Parameters (req.params) উদাহরণ
Request Parameters হল URL পাথের অংশ যেখানে কিছু ডায়নামিক ভ্যালু থাকতে পারে। এই প্যারামিটারগুলো URL এর মধ্যে ব্যবহার করা হয় এবং অ্যাক্সেস করা যায় req.params
ব্যবহার করে।
উদাহরণ:
const express = require('express');
const app = express();
const port = 3000;
// URL প্যারামিটার ব্যবহার করে রাউট
app.get('/user/:id', (req, res) => {
// req.params থেকে প্যারামিটারটি পান
const userId = req.params.id;
// প্যারামিটারটি রেসপন্স হিসেবে পাঠান
res.send(`User ID: ${userId}`);
});
// সার্ভার শুরু করা
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
উপরে, যখন ইউজার এই URL http://localhost:3000/user/123
এ ব্রাউজার থেকে রিকোয়েস্ট পাঠাবে, সার্ভার User ID: 123
রেসপন্স হিসেবে পাঠাবে।
Body Parser
Body Parser middleware ব্যবহার না করলে Express POST রিকোয়েস্টের বডি ডেটা প্যারস করতে পারবে না, ফলে req.body
অবজেক্টটি undefined
থাকবে। এটি একটি সাধারণ ত্রুটি যা অনেক নতুন ডেভেলপাররা সম্মুখীন হন।
ধাপ ১: Express সার্ভার তৈরি করা (Body Parser ছাড়া)
প্রথমে, আমরা একটি সহজ Express সার্ভার তৈরি করবো কিন্তু Body Parser middleware ব্যবহার করবো না।
// server.js
const express = require('express');
const app = express();
const port = 3000;
// GET রাউট
app.get('/', (req, res) => {
res.send('Hello, World!');
});
// POST রাউট
app.post('/submit', (req, res) => {
const { name, email } = req.body;
res.send(`Name: ${name}, Email: ${email}`);
});
// সার্ভার শুরু করা
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
ধাপ ২: সার্ভার চালানো
টার্মিনালে নিচের কমান্ডটি রান করুন:
node server.js
ধাপ ৩: POST রিকোয়েস্ট পাঠানো এবং টেস্ট করা
আমরা POST রিকোয়েস্ট পাঠানোর জন্য Postman বা cURL ব্যবহার করতে পারি।
Postman ব্যবহার করে:
- Postman খুলুন এবং একটি নতুন POST রিকোয়েস্ট তৈরি করুন।
- URL হিসাবে
http://localhost:3000/submit
দিন। - Body ট্যাবে যান এবং
raw
নির্বাচন করুন, তারপরJSON
নির্বাচন করুন। - নিম্নলিখিত JSON ডেটা ইনপুট করুন
{
"name": "John Doe",
"email": "john.doe@example.com"
}
- Send বাটনে ক্লিক করুন।
আপনি একটি রেসপন্স পাবেন:
Name: undefined, Email: undefined
যেহেতু আমরা Body Parser middleware ব্যবহার করিনি, তাই req.body
অবজেক্টটি undefined
থাকে এবং আমরা POST রিকোয়েস্ট থেকে ডেটা পেতে ব্যর্থ হই। এ কারণে রেসপন্সে undefined
দেখা যায়।
সম্পূর্ণ কোড (Body Parser সহ):
// server.js
const express = require('express');
const app = express();
const port = 3000;
// Body parser middleware
app.use(express.json()); // JSON বডি প্যারস করার জন্য
app.use(express.urlencoded({ extended: true })); // URL-encoded ফর্ম ডেটা প্যারস করার জন্য
// GET রাউট
app.get('/', (req, res) => {
res.send('Hello, World!');
});
// POST রাউট
app.post('/submit', (req, res) => {
const { name, email } = req.body;
res.send(`Name: ${name}, Email: ${email}`);
});
// সার্ভার শুরু করা
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
Request Body (req.body) উদাহরণ
Request Body হল HTTP POST রিকোয়েস্টের সাথে পাঠানো ডেটা। এই ডেটা সাধারণত ফর্ম ডেটা বা JSON ডেটা হতে পারে এবং অ্যাক্সেস করা যায় req.body
ব্যবহার করে।
উদাহরণ:
const express = require('express');
const app = express();
const port = 3000;
// Body parser middleware
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// POST রাউট
app.post('/submit', (req, res) => {
// req.body থেকে ডেটা পান
const { name, email } = req.body;
// ডেটা রেসপন্স হিসেবে পাঠান
res.send(`Name: ${name}, Email: ${email}`);
});
// সার্ভার শুরু করা
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
উপরে, যখন ইউজার এই URL http://localhost:3000/submit
এ POST রিকোয়েস্ট পাঠাবে নিম্নলিখিত বডি সহ:
{
"name": "John Doe",
"email": "john.doe@example.com"
}