Node.js میں واقعات اور غیر مطابقت پذیری کو ہینڈل کرنا

Node.js ایپلی کیشنز تیار کرنے کے عمل میں، ایونٹ ہینڈلنگ اور غیر مطابقت پذیر پروسیسنگ کو سمجھنا اور اس کے ساتھ کام کرنا بہت ضروری ہے۔ Node.js ایک ایونٹ سے چلنے والے اور غیر مطابقت پذیر ماڈل پر بنایا گیا ہے، جس سے کاموں کو مکمل ہونے کا انتظار کیے بغیر انجام دیا جا سکتا ہے۔ درحقیقت، ایونٹ ہینڈلنگ اور غیر مطابقت پذیر پروسیسنگ کو سمجھنا اور درست طریقے سے لاگو کرنا درخواست کی کارکردگی کو بہتر بنانے کا ایک لازمی حصہ ہے۔

 

Node.js میں واقعات اور کال بیکس

Node.js میں، واقعات اور کال بیکس غیر مطابقت پذیر کارروائیوں کو سنبھالنے میں اہم کردار ادا کرتے ہیں۔ واقعات کو ہینڈل کرنے اور ان کا جواب دینے کا ایک طریقہ ہے جو کسی ایپلیکیشن کے اندر ہوتا ہے۔ کال بیکس، دوسری طرف، وہ فنکشنز ہیں جو کسی مخصوص ایونٹ یا آپریشن کے مکمل ہونے کے بعد انجام پاتے ہیں۔

Node.js ایک ایونٹ پر مبنی فن تعمیر فراہم کرتا ہے جہاں ایپلیکیشن کے مختلف حصے واقعات کو خارج کر سکتے ہیں اور انہیں سن سکتے ہیں۔ یہ بیک وقت متعدد آپریشنز کی موثر اور غیر مسدود پروسیسنگ کی اجازت دیتا ہے۔

کال بیکس کو عام طور پر Node.js میں غیر مطابقت پذیر کارروائیوں کو سنبھالنے کے لیے استعمال کیا جاتا ہے۔ وہ فنکشنز کے لیے دلائل کے طور پر پاس کیے جاتے ہیں اور آپریشن مکمل ہونے کے بعد ان پر عمل درآمد کیا جاتا ہے۔ کال بیکس نتائج یا غلطیوں کو سنبھالنے کا ایک طریقہ فراہم کرتی ہیں جو غیر مطابقت پذیر کاموں کے دوران ہوتی ہیں۔

Node.js میں کال بیک استعمال کرنے کی ایک مثال یہ ہے:

// A function that takes a callback
function fetchData(callback) {
  // Simulate fetching data from an asynchronous operation
  setTimeout(() => {
    const data = { name: 'John', age: 30 };
    callback(null, data); // Pass the data to the callback
  }, 2000); // Simulate a 2-second delay
}

// Call the fetchData function and provide a callback
fetchData((error, data) => {
  if (error) {
    console.error('Error:', error);
  } else {
    console.log('Data:', data);
  }
});

اس مثال میں، ہمارے پاس ایک فنکشن ہے fetchDataجس کا نام ایک غیر مطابقت پذیر آپریشن سے ڈیٹا حاصل کرنا ہے (مثال کے طور پر، API کال کرنا یا ڈیٹا بیس سے استفسار کرنا)۔ یہ ایک دلیل کے طور پر کال بیک فنکشن لیتا ہے۔

فنکشن کے اندر fetchData، ہم setTimeoutاسینکرونس آپریشن کی نقل کرنے کے لیے استعمال کرتے ہیں۔ 2-سیکنڈ کی تاخیر کے بعد، ہم کچھ نمونہ ڈیٹا بناتے ہیں اور اسے کال بیک فنکشن میں غلطی کے ساتھ بھیج دیتے ہیں (جو nullاس معاملے میں سیٹ ہے)۔

فنکشن کے باہر fetchData، ہم اسے کال کرتے ہیں اور کال بیک فنکشن فراہم کرتے ہیں۔ کال بیک میں، ہم کسی بھی ممکنہ غلطی کو سنبھالتے ہیں اور موصولہ ڈیٹا پر کارروائی کرتے ہیں۔ اگر کوئی خرابی ہے تو، ہم اسے کنسول میں لاگ ان کرتے ہیں۔ دوسری صورت میں، ہم ڈیٹا کو لاگ ان کرتے ہیں.

یہ Node.js میں کال بیک استعمال کرنے کی ایک بنیادی مثال ہے تاکہ غیر مطابقت پذیر آپریشنز کو ہینڈل کیا جا سکے اور اس بات کو یقینی بنایا جائے کہ ڈیٹا دستیاب ہونے کے بعد اس پر کارروائی کی جائے۔ حقیقی دنیا کے منظرناموں میں، کال بیکس کو عام طور پر ڈیٹا بیس کے سوالات، API کی درخواستوں، اور دیگر غیر مطابقت پذیر کاموں کو سنبھالنے کے لیے استعمال کیا جاتا ہے۔

 

وعدوں کا استعمال کرنا اور غیر مطابقت پذیری کو سنبھالنے کے لیے async/await کرنا

غیر مطابقت پذیر آپریشنز کو ہینڈل کرنے کے لیے Promise اور async/await کا استعمال کرنا Node.js میں آسان اور موثر طریقے سے غیر مطابقت پذیر کاموں کو ہینڈل کرنے کا ایک عام طریقہ ہے۔ Promise ایک JavaScript آبجیکٹ ہے جو ہمیں غیر مطابقت پذیر کارروائیوں کو سنبھالنے اور سنبھالنے میں مدد کرتا ہے، جبکہ async/await ایک ایسا نحو ہے جو ہمیں مطابقت پذیر کوڈ کی طرح غیر مطابقت پذیر کوڈ لکھنے کی اجازت دیتا ہے۔

Promise اور async/await کا استعمال کرتے ہوئے، ہم زیادہ آسانی اور بدیہی طور پر غیر مطابقت پذیر کوڈ لکھ سکتے ہیں۔ ہمیں اب کال بیک فنکشنز کو استعمال کرنے اور کال بیک ہیل (نیسٹڈ کال بیک فنکشنز) سے نمٹنے کی ضرورت نہیں ہے تاکہ ہم غیر مطابقت پذیر کارروائیوں کو سنبھال سکیں۔ اس کے بجائے، ہم کسی وعدے کے مکمل ہونے اور اس کا نتیجہ واپس آنے کا انتظار کرنے کے لیے await کلیدی لفظ استعمال کر سکتے ہیں۔

غیر مطابقت پذیر کارروائیوں کو سنبھالنے کے لیے Node.js میں Promise اور async/await استعمال کرنے کی ایک مثال یہ ہے۔

// A mock function to fetch data from an API
function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const data = { name: 'John', age: 30 };
      resolve(data); // Return data within the Promise
    }, 2000);
  });
}

// Using async/await to handle asynchronous operations
async function getData() {
  try {
    const data = await fetchData(); // Wait for the Promise to complete and return the data
    console.log('Data:', data);
  } catch (error) {
    console.error('Error:', error);
  }
}

// Call the getData function
getData();

اس مثال میں، ہم fetchDataکسی API (یا کسی بھی غیر مطابقت پذیر آپریشن) سے ڈیٹا حاصل کرنے کے لیے فنکشن کا استعمال کرتے ہیں۔ یہ فنکشن ایک وعدہ واپس کرتا ہے، جہاں ہم resolveڈیٹا کو واپس کرنے کے لیے فنکشن کو کہتے ہیں۔

فنکشن کے باہر fetchData، ہم try/catchغلطیوں کو سنبھالنے کے لیے ایک بلاک کا استعمال کرتے ہیں۔ فنکشن میں getData، ہم awaitوعدے کے مکمل ہونے اور ڈیٹا واپس کرنے کا انتظار کرنے کے لیے کلیدی لفظ استعمال کرتے ہیں۔ اگر وعدے میں کوئی خامی ہے تو، یہ ایک استثناء پھینک دے گا اور ہم اسے catchبلاک میں ہینڈل کرتے ہیں۔

آخر میں، ہم getDataغیر مطابقت پذیر پروسیسنگ شروع کرنے کے لیے فنکشن کو کال کرتے ہیں۔ وعدہ مکمل ہونے اور ڈیٹا واپس کرنے کے بعد نتیجہ کنسول میں لاگ ان ہو جائے گا۔

Promise اور async/await کا استعمال ہمارے کوڈ کو مزید پڑھنے کے قابل بناتا ہے اور غیر مطابقت پذیر کارروائیوں سے نمٹنے کے دوران سمجھنے میں آسان بناتا ہے۔ یہ کال بیک جہنم سے بچنے میں ہماری مدد کرتا ہے اور ہمیں ترتیب وار انداز میں کوڈ لکھنے کی اجازت دیتا ہے، جیسا کہ ہم وقت ساز کوڈ لکھنا ہے۔

 

نتیجہ: Node.js ایپلی کیشنز کی ترقی میں ایونٹ ہینڈلنگ اور غیر مطابقت پذیر پروسیسنگ دو اہم پہلو ہیں۔ متعلقہ تصورات اور ٹولز کو سمجھ کر اور صحیح طریقے سے استعمال کرتے ہوئے، آپ Node.js پلیٹ فارم پر موثر، لچکدار، اور قابل اعتماد ایپلی کیشنز بنا سکتے ہیں۔