Promise ভিত্তিক Middleware তৈরি করা

KoaJS এর Async/Await এবং Promise সমর্থন - কোআজেএস (KoaJS) - Web Development

256

KoaJS একটি অত্যন্ত নমনীয় ওয়েব ফ্রেমওয়ার্ক যা অ্যাসিনক্রোনাস প্রোগ্রামিংয়ের জন্য অত্যন্ত উপযোগী। KoaJS-এ মিডলওয়্যার সিস্টেমটি Promise এবং async/await এর মাধ্যমে পরিচালিত হয়, যা ডেভেলপারদের অ্যাসিনক্রোনাস কাজগুলো সহজভাবে পরিচালনা করার সুবিধা প্রদান করে।

Promise ভিত্তিক মিডলওয়্যার তৈরি করা KoaJS-এ খুবই সহজ এবং স্বাভাবিক কাজ। আমরা নিচে একটি উদাহরণ দিয়ে দেখব কিভাবে KoaJS-এ Promise ভিত্তিক মিডলওয়্যার তৈরি করা যায়।


KoaJS-এ Promise ভিত্তিক Middleware তৈরি করার জন্য প্রয়োজনীয় পদক্ষেপ

১. KoaJS ইনস্টল করা

প্রথমে KoaJS ইনস্টল করতে হবে। যদি আপনার সিস্টেমে KoaJS ইতিমধ্যে ইনস্টল না থাকে, তাহলে নিম্নলিখিত কমান্ড ব্যবহার করে এটি ইনস্টল করতে পারেন:

npm install koa

২. Promise ভিত্তিক Middleware তৈরি করা

KoaJS-এ মিডলওয়্যার মূলত অ্যাসিনক্রোনাস ফাংশন হিসেবে কাজ করে। Promise ভিত্তিক মিডলওয়্যার তৈরি করার জন্য আপনি একটি async ফাংশন ব্যবহার করতে পারেন, যা Promise রিটার্ন করবে।

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

// Promise ভিত্তিক Middleware তৈরি করা
app.use(async (ctx, next) => {
  // Promise-based কাজ শুরু
  console.log('Middleware started');

  // একটি পছন্দমত অ্যাসিনক্রোনাস কাজ (উদাহরণস্বরূপ, টাইম আউট)
  await new Promise((resolve) => {
    setTimeout(() => {
      console.log('Promise resolved after 2 seconds');
      resolve();
    }, 2000);
  });

  // পরবর্তী মিডলওয়্যার কল করা
  await next();

  // মিডলওয়্যার শেষে কাজ
  console.log('Middleware ended');
});

// একটি সিম্পল রাউট তৈরি করা
app.use(async (ctx) => {
  ctx.body = 'Hello, KoaJS with Promise-based middleware!';
});

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

কোডের ব্যাখ্যা:

  1. async (ctx, next) => {...}: এই অংশে আমরা async ফাংশন ব্যবহার করেছি, যা Promise ভিত্তিক কাজ করতে সক্ষম। এটি একটি মিডলওয়্যার ফাংশন হিসেবে কাজ করবে।
  2. await new Promise(...): এখানে আমরা একটি Promise তৈরি করেছি, যা ২ সেকেন্ড পরে resolve হবে। এটি আমাদের অ্যাসিনক্রোনাস কাজ হিসেবে ব্যবহৃত হচ্ছে।
  3. await next(): next() কল করার মাধ্যমে KoaJS পরবর্তী মিডলওয়্যার বা রাউট হ্যান্ডলারকে কার্যকর করতে পারে।
  4. ctx.body = 'Hello, KoaJS with Promise-based middleware!': এই কোডটি রাউট হ্যান্ডলারের কাজ, যা ক্লায়েন্টে রেসপন্স পাঠাবে।

৩. অ্যাপ চালানো

এখন আপনার অ্যাপ্লিকেশনটি চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:

node app.js

এটি আপনার সার্ভার চালু করবে এবং আপনি http://localhost:3000 গিয়ে "Hello, KoaJS with Promise-based middleware!" মেসেজ দেখতে পাবেন। মিডলওয়্যারটি Promise ভিত্তিক এবং ২ সেকেন্ড পর রেসপন্স হবে।


Promise ভিত্তিক মিডলওয়্যার সম্পর্কে আরও কিছু গুরুত্বপূর্ণ তথ্য

  1. Middleware Chaining: KoaJS-এ Promise ভিত্তিক মিডলওয়্যার ব্যবহৃত হলে আপনি মিডলওয়্যারগুলির চেইন তৈরি করতে পারেন। যখন একটি মিডলওয়্যার await next() কল করে, তখন এটি পরবর্তী মিডলওয়্যার বা রাউট হ্যান্ডলারকে কল করবে।
  2. Error Handling: Promise ভিত্তিক মিডলওয়্যার ব্যবহার করার সময়, আপনি সাধারণত try-catch ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিং করতে পারেন। এর মাধ্যমে অ্যাসিনক্রোনাস কাজের সময় কোন ত্রুটি ঘটলে তা ধরতে পারবেন।
app.use(async (ctx, next) => {
  try {
    await new Promise((resolve, reject) => {
      // এই অংশে যদি কোনো ত্রুটি ঘটে, তবে reject হবে
      reject(new Error('Something went wrong!'));
    });
  } catch (err) {
    ctx.status = 500;
    ctx.body = { message: 'Internal Server Error', error: err.message };
  }
  await next();
});
  1. Multiple Promise Handling: আপনি যদি একাধিক Promise একসাথে হ্যান্ডেল করতে চান, তবে Promise.all() ব্যবহার করতে পারেন।
app.use(async (ctx, next) => {
  await Promise.all([
    new Promise((resolve) => setTimeout(resolve, 1000)),
    new Promise((resolve) => setTimeout(resolve, 1500)),
  ]);
  ctx.body = 'Both promises resolved';
});

সারাংশ

KoaJS-এ Promise ভিত্তিক মিডলওয়্যার তৈরি করা খুবই সহজ এবং এটি অ্যাসিনক্রোনাস কাজের জন্য অত্যন্ত সুবিধাজনক। আপনি async এবং await এর মাধ্যমে Promise গুলি হ্যান্ডল করতে পারবেন, যা আপনার কোডকে আরও পরিষ্কার এবং সহজ করে তোলে। Promise ভিত্তিক মিডলওয়্যার ব্যবহার করে আপনি টাইম আউট, ফাইল সিস্টেম অ্যাক্সেস, ডাটাবেস কনেকশন, অথবা অন্যান্য অ্যাসিনক্রোনাস কাজ করতে পারবেন। KoaJS-এ Promise ভিত্তিক মিডলওয়্যার খুবই শক্তিশালী এবং এটি আপনার অ্যাপ্লিকেশনের পারফরম্যান্স এবং স্কেলেবিলিটি বাড়াতে সাহায্য করবে।

Content added By
Promotion

Are you sure to start over?

Loading...