ExpressJS থেকে JSON Response তৈরি করা

Ajax এবং ExpressJS ইন্টিগ্রেশন - এক্সপ্রেসজেএস (ExpressJS) - Web Development

271

ExpressJS-এ JSON রেসপন্স তৈরি করা একটি সাধারণ কাজ এবং এটি ওয়েব অ্যাপ্লিকেশন বা API-তে ক্লায়েন্টদের তথ্য পাঠানোর জন্য ব্যাপকভাবে ব্যবহৃত হয়। JSON (JavaScript Object Notation) হল একটি হালকা ও স্বচ্ছ ডেটা ফরম্যাট, যা ব্রাউজার এবং সার্ভারের মধ্যে ডেটা আদান-প্রদানে ব্যবহার করা হয়।

ExpressJS-এ JSON রেসপন্স তৈরি করতে res.json() মেথড ব্যবহার করা হয়, যা একটি জাভাস্ক্রিপ্ট অবজেক্ট বা অ্যারে কে JSON ফরম্যাটে রূপান্তর করে ক্লায়েন্টকে পাঠায়।


১. JSON রেসপন্স তৈরি করা

ExpressJS-এ একটি রাউট তৈরি করে JSON রেসপন্স পাঠানো খুবই সহজ। নিচে একটি সাধারণ উদাহরণ দেওয়া হলো যেখানে একটি GET রিকোয়েস্টের মাধ্যমে JSON রেসপন্স পাঠানো হচ্ছে।

উদাহরণ: JSON রেসপন্স পাঠানো

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

// GET রাউট যা JSON রেসপন্স পাঠায়
app.get('/api/data', (req, res) => {
  const responseData = {
    success: true,
    message: 'Data fetched successfully',
    data: {
      id: 1,
      name: 'John Doe',
      email: 'john@example.com'
    }
  };

  res.json(responseData); // JSON রেসপন্স পাঠানো
});

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

এখানে:

  • res.json(): এটি responseData অবজেক্টটি JSON ফরম্যাটে রূপান্তর করে ক্লায়েন্টকে পাঠাচ্ছে।
  • responseData: এটি একটি জাভাস্ক্রিপ্ট অবজেক্ট, যা সাফল্য স্ট্যাটাস, বার্তা, এবং ডেটা ধারণ করে।

রেসপন্স:

{
  "success": true,
  "message": "Data fetched successfully",
  "data": {
    "id": 1,
    "name": "John Doe",
    "email": "john@example.com"
  }
}

২. Error Handling সহ JSON রেসপন্স

আপনি যদি API তে এরর হ্যান্ডলিং করতে চান, তবে তাও JSON রেসপন্সের মাধ্যমে করা যায়। উদাহরণস্বরূপ, যদি কোনো রিসোর্স পাওয়া না যায় বা কোনো সমস্যা হয়, তাহলে আপনি একটি কাস্টম এরর বার্তা JSON ফরম্যাটে পাঠাতে পারেন।

উদাহরণ: Error Handling সহ JSON রেসপন্স

app.get('/api/user/:id', (req, res) => {
  const userId = req.params.id;

  // যদি ব্যবহারকারী না পাওয়া যায়
  if (userId !== '1') {
    return res.status(404).json({
      success: false,
      message: 'User not found'
    });
  }

  // ব্যবহারকারী পাওয়া গেলে
  const user = {
    id: 1,
    name: 'John Doe',
    email: 'john@example.com'
  };

  res.json({
    success: true,
    message: 'User found',
    data: user
  });
});

এখানে:

  • যদি ব্যবহারকারী id না পাওয়া যায়, তাহলে 404 (Not Found) স্ট্যাটাস কোড সহ একটি JSON এরর রেসপন্স পাঠানো হচ্ছে।
  • যদি ব্যবহারকারী পাওয়া যায়, তবে একটি সফল JSON রেসপন্স পাঠানো হচ্ছে।

404 Error রেসপন্স:

{
  "success": false,
  "message": "User not found"
}

Success রেসপন্স:

{
  "success": true,
  "message": "User found",
  "data": {
    "id": 1,
    "name": "John Doe",
    "email": "john@example.com"
  }
}

৩. স্ট্যাটাস কোড সহ JSON রেসপন্স

ExpressJS-এ আপনি HTTP স্ট্যাটাস কোড সেট করতে পারেন, যা ক্লায়েন্টকে সার্ভারের অবস্থা সম্পর্কে তথ্য দেয়। res.status() মেথড দিয়ে আপনি স্ট্যাটাস কোড সেট করতে পারেন এবং তারপর res.json() বা res.send() দিয়ে JSON রেসপন্স পাঠাতে পারেন।

উদাহরণ: স্ট্যাটাস কোড সহ JSON রেসপন্স

app.post('/api/users', (req, res) => {
  const { name, email } = req.body;

  // যদি ডেটা ভুল থাকে
  if (!name || !email) {
    return res.status(400).json({
      success: false,
      message: 'Name and email are required'
    });
  }

  // নতুন ব্যবহারকারী তৈরি
  const newUser = {
    id: 2,
    name: name,
    email: email
  };

  res.status(201).json({
    success: true,
    message: 'User created successfully',
    data: newUser
  });
});

এখানে:

  • যদি ইনপুট ডেটা ঠিক না থাকে, 400 (Bad Request) স্ট্যাটাস কোড সহ JSON এরর রেসপন্স পাঠানো হচ্ছে।
  • যদি নতুন ব্যবহারকারী তৈরি হয়, 201 (Created) স্ট্যাটাস কোড সহ JSON রেসপন্স পাঠানো হচ্ছে।

400 Error রেসপন্স:

{
  "success": false,
  "message": "Name and email are required"
}

201 Success রেসপন্স:

{
  "success": true,
  "message": "User created successfully",
  "data": {
    "id": 2,
    "name": "Jane Doe",
    "email": "jane@example.com"
  }
}

৪. Query Parameters সহ JSON রেসপন্স

ক্লায়েন্টরা প্রায়ই URL-এ query parameters পাঠিয়ে সার্ভার থেকে নির্দিষ্ট ডেটা চায়। ExpressJS-এ আপনি req.query ব্যবহার করে query parameters অ্যাক্সেস করতে পারেন এবং সেই অনুযায়ী JSON রেসপন্স পাঠাতে পারেন।

উদাহরণ: Query Parameters সহ JSON রেসপন্স

app.get('/api/search', (req, res) => {
  const { name, email } = req.query;

  if (!name && !email) {
    return res.status(400).json({
      success: false,
      message: 'At least one query parameter (name or email) is required'
    });
  }

  // ফিল্টার করা ডেটা
  const users = [
    { id: 1, name: 'John Doe', email: 'john@example.com' },
    { id: 2, name: 'Jane Doe', email: 'jane@example.com' }
  ];

  const filteredUsers = users.filter(user => {
    return (name && user.name.includes(name)) || (email && user.email.includes(email));
  });

  res.json({
    success: true,
    data: filteredUsers
  });
});

এখানে:

  • req.query দিয়ে query parameters (name বা email) থেকে ইনপুট নেওয়া হচ্ছে।
  • name বা email এর ভিত্তিতে ডেটা ফিল্টার করা হচ্ছে এবং JSON রেসপন্স পাঠানো হচ্ছে।

উদাহরণ Query:

GET /api/search?name=John

রেসপন্স:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "name": "John Doe",
      "email": "john@example.com"
    }
  ]
}

সারাংশ

ExpressJS দিয়ে JSON রেসপন্স তৈরি করা খুবই সহজ এবং এটি ওয়েব অ্যাপ্লিকেশন বা API ডেভেলপমেন্টে খুবই গুরুত্বপূর্ণ। res.json() মেথড ব্যবহার করে আপনি JSON ফরম্যাটে ডেটা ক্লায়েন্টে পাঠাতে পারেন। এর মাধ্যমে আপনি ডেটা, এরর মেসেজ, স্ট্যাটাস কোড, এবং অন্যান্য তথ্য সঠিকভাবে ক্লায়েন্টকে পাঠাতে পারবেন। RESTful API তৈরি করার সময় JSON রেসপন্স ব্যবহারের মাধ্যমে অ্যাপ্লিকেশনকে আরও কার্যকর এবং ইন্টারঅ্যাকটিভ করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...