Error Handling Middleware

KoaJS Middleware বিস্তারিত - কোআজেএস (KoaJS) - Web Development

277

KoaJS একটি মিনিমালিস্ট এবং কাস্টমাইজযোগ্য ফ্রেমওয়ার্ক, যা Node.js এ অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত হয়। KoaJS এর মূল বৈশিষ্ট্য হলো এর মিডলওয়্যার পদ্ধতি, যা ডেভেলপারদের কোডের কার্যকারিতা কাস্টমাইজ করতে সক্ষম করে। এর মধ্যে একটি গুরুত্বপূর্ণ বিষয় হলো Error Handling Middleware

Error Handling Middleware ব্যবহার করে আপনি অ্যাপ্লিকেশনে যেকোনো ধরনের ত্রুটি (error) সহজেই ক্যাচ এবং হ্যান্ডল করতে পারেন। এটি অ্যাপ্লিকেশনের স্থিতিশীলতা বজায় রাখতে সহায়তা করে এবং ব্যবহারকারীদের ভাল রেসপন্স প্রদান করে।


KoaJS Error Handling Middleware কিভাবে কাজ করে?

KoaJS-এ, মিডলওয়্যার ব্যবহারের মাধ্যমে ত্রুটি হ্যান্ডলিং খুবই সহজ। একটি কাস্টম মিডলওয়্যার তৈরি করা হয় যা ত্রুটি ক্যাচ করে এবং প্রয়োজনে একটি কাস্টম রেসপন্স প্রদান করে। সাধারণত, try...catch ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিং করা হয়। ত্রুটি হ্যান্ডলিংয়ের জন্য একটি মিডলওয়্যার চেইন তৈরি করতে হবে, যা ত্রুটি ঘটলে এটি কাস্টম রেসপন্স দেয়।


Error Handling Middleware তৈরি করা

এখানে একটি সহজ উদাহরণ দেখানো হচ্ছে, যেখানে KoaJS এর মধ্যে একটি কাস্টম Error Handling Middleware তৈরি করা হবে।

স্টেপ ১: কাস্টম Error Handling Middleware

const Koa = require('koa');
const app = new Koa();

// Error Handling Middleware
app.use(async (ctx, next) => {
  try {
    // পরবর্তী মিডলওয়্যার কল করা
    await next();
  } catch (err) {
    // ত্রুটি ঘটলে এটি কার্যকর হবে
    console.error('Error occurred:', err);

    // কাস্টম রেসপন্স তৈরি করা
    ctx.status = err.status || 500;  // ত্রুটি স্ট্যাটাস কোড
    ctx.body = {
      message: 'Something went wrong!',
      error: err.message
    };
  }
});

// একটি রুট তৈরি করা যেটি ইচ্ছাকৃতভাবে ত্রুটি তৈরি করবে
app.use(ctx => {
  throw new Error('This is a custom error!');
});

// অ্যাপ্লিকেশন চালু করা
app.listen(3000, () => {
  console.log('Server is running on http://localhost:3000');
});

এখানে, একটি কাস্টম মিডলওয়্যার তৈরি করা হয়েছে যা ত্রুটি ক্যাচ করে এবং কাস্টম মেসেজ সহ একটি রেসপন্স প্রদান করে।

  • try...catch ব্লক ব্যবহার করে আমরা ত্রুটি ক্যাচ করছি এবং যদি ত্রুটি হয় তবে সেটি কনসোল-এ লগ করি এবং ctx.status দিয়ে HTTP স্ট্যাটাস কোড এবং ctx.body দিয়ে ত্রুটির মেসেজ পাঠাই।

স্টেপ ২: ত্রুটি হ্যান্ডলিং জন্য ctx.status এবং ctx.body ব্যবহার করা

KoaJS তে, ctx.status এবং ctx.body ব্যবহার করে আপনি রেসপন্স স্ট্যাটাস কোড এবং বডি সেট করতে পারেন। ত্রুটি ঘটলে, ctx.status দিয়ে আপনি HTTP স্ট্যাটাস কোড সেট করতে পারেন, যেমন 400 (Bad Request), 404 (Not Found), 500 (Internal Server Error) ইত্যাদি।


Error Handling এর জন্য অন্য একটি উদাহরণ

ধরা যাক, আপনার অ্যাপ্লিকেশনে একটি API রুট রয়েছে যা ডাটাবেজ থেকে ডেটা ফেচ করে। যদি ডাটাবেজ কানেকশন না হয় অথবা অন্য কোন ত্রুটি ঘটে, তবে আপনি ত্রুটি হ্যান্ডলিংয়ের মাধ্যমে ক্লায়েন্টকে সঠিক রেসপন্স দিতে পারেন।

const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();

// Error Handling Middleware
app.use(async (ctx, next) => {
  try {
    await next();
  } catch (err) {
    console.error('Error occurred:', err);
    ctx.status = err.status || 500;
    ctx.body = {
      message: 'Internal server error',
      error: err.message
    };
  }
});

// API রুট তৈরি করা
router.get('/data', async (ctx) => {
  try {
    // এখানে ডাটাবেজ বা অন্য কোন অপারেশন হতে পারে
    throw new Error('Database connection failed!');
  } catch (err) {
    throw err; // কাস্টম ত্রুটি হ্যান্ডলিং মিডলওয়্যার দ্বারা এই ত্রুটিটি হ্যান্ডেল হবে
  }
});

app.use(router.routes()).use(router.allowedMethods());

// অ্যাপ চালু করা
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

এখানে, /data রুটে একটি ডাটাবেজ ত্রুটি সৃষ্টি করা হয়েছে এবং সেই ত্রুটি কাস্টম মিডলওয়্যার দ্বারা হ্যান্ডেল করা হয়েছে। যখন ডাটাবেজ কানেকশনে ত্রুটি ঘটবে, তখন কাস্টম ত্রুটি বার্তা সহ 500 স্ট্যাটাস কোড পাঠানো হবে।


Error Handling Middleware এর সুবিধা

  1. কেন্দ্রীভূত ত্রুটি হ্যান্ডলিং: আপনি একটি মিডলওয়্যার দিয়ে সমস্ত অ্যাপ্লিকেশনের ত্রুটি এক জায়গায় হ্যান্ডল করতে পারেন, যা কোডের পুনঃব্যবহারযোগ্যতা এবং রক্ষণাবেক্ষণ সহজ করে।
  2. কাস্টম রেসপন্স: আপনি কাস্টম ত্রুটি বার্তা এবং HTTP স্ট্যাটাস কোড তৈরি করতে পারেন, যা ব্যবহারকারীর জন্য পরিষ্কার এবং সুবিধাজনক।
  3. ডিবাগিং সহজ: ত্রুটি লগিং (যেমন console.error()) ব্যবহার করে ত্রুটি ঘটলে তা সহজেই শনাক্ত করা যায়, যা ডিবাগিং প্রক্রিয়াকে সহায়তা করে।

সারাংশ

KoaJS তে Error Handling Middleware খুবই গুরুত্বপূর্ণ একটি অংশ। এটি অ্যাপ্লিকেশন স্টেবল রাখতে এবং ব্যবহারকারীদের জন্য ভালো রেসপন্স নিশ্চিত করতে সাহায্য করে। try...catch ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিং করা হয়, এবং ctx.statusctx.body ব্যবহার করে কাস্টম ত্রুটি বার্তা পাঠানো হয়। এই মিডলওয়্যার ডেভেলপারদের অ্যাপ্লিকেশনে সঠিকভাবে ত্রুটি পরিচালনা করতে সহায়তা করে, যা অ্যাপ্লিকেশনের স্থিতিশীলতা এবং নিরাপত্তা নিশ্চিত করে।

Content added By
Promotion

Are you sure to start over?

Loading...