node-ftch کے ساتھ Node.js میں HTTP درخواستیں کیسے بنائیں

Node Ftch K Sat Node Js My Http Drkhwasty Kys Bnayy



HTTP درخواستیں بہت اہم ہیں اور عالمی سطح پر یو آر ایل سے معلومات حاصل کرنے کے لیے کی جاتی ہیں یعنی کسی ویب سائٹ کو طلب کرنا وغیرہ۔ یہ نقطہ نظر اس وقت عمل میں آتا ہے جب کسی ویب ایپلیکیشن کو وسائل تک رسائی کے لیے ویب سرورز کے ساتھ مواصلت قائم کرنے کی ضرورت ہوتی ہے۔ مثال کے طور پر، ڈیٹا کو بازیافت کرنا یا ویب سرور یا API پر پوسٹ کرنا۔

جاوا اسکرپٹ میں، یہ 'کے ذریعے کیا جا سکتا ہے window.fetch() 'طریقہ. تاہم، میں ' node.js ”، یہ فعالیت ایک سے زیادہ پیکجز یعنی نوڈ فیچ وغیرہ کے استعمال سے حاصل کی جا سکتی ہے۔

یہ بلاگ مندرجہ ذیل مواد کے شعبوں کی وضاحت کرتا ہے:







'node-fetch' کیا ہے؟

' node-ftch ” ایک ہلکے وزن والے ماڈیول سے مطابقت رکھتا ہے جو fetch API کو node.js تک قابل رسائی بناتا ہے۔ یہ ماڈیول صارفین کو استعمال کرنے کی بھی اجازت دیتا ہے۔ حاصل کریں() 'node.js میں طریقہ جو زیادہ تر جاوا اسکرپٹ سے ملتا جلتا ہے' window.fetch() 'طریقہ.



نحو (لانے کا طریقہ)



لانا ( یو آر ایل [ ، اختیارات ] ) ;

اس نحو میں:





  • ' یو آر ایل ' سے مراد اس وسیلہ کا URL ہے جسے بازیافت/ بازیافت کرنے کی ضرورت ہے۔
  • ' اختیارات 'پیرامیٹر کی ضرورت اس وقت ہوتی ہے جب 'fetch()' طریقہ استعمال کرنے کی ضرورت ہو حاصل کریں۔ 'درخواست.

واپسی کی قیمت

یہ فنکشن ایک ریسپانس آبجیکٹ کو بازیافت کرتا ہے جس میں HTTP ردعمل سے متعلق معلومات درج ذیل ہیں:



  • متن: رسپانس باڈی کو سٹرنگ کی شکل میں بازیافت کرتا ہے۔
  • ہیڈر: جوابی ہینڈلرز پر مشتمل آبجیکٹ لوٹاتا ہے۔
  • json(): JSON آبجیکٹ میں رسپانس باڈی کو پارس کرتا ہے۔
  • status text/status: HTTP اسٹیٹس کوڈ سے متعلق معلومات پر مشتمل ہے۔
  • ٹھیک ہے: دیتا ہے' سچ اگر اسٹیٹس 2xx اسٹیٹس کوڈ ہے۔

نوڈ فیچ استعمال کرنے کی شرائط

' کے ساتھ شروع کرنے سے پہلے درج ذیل شرائط پر غور کرنا ضروری ہے node-ftch ”:

  • 17.5 ورژن سے کم از کم یا تازہ ترین انسٹال کیا گیا ہے۔
  • جاوا اسکرپٹ کا بنیادی علم۔

node-ftch کے ساتھ node.js میں HTTP درخواستیں کیسے بنائیں؟

HTTP درخواستیں کرنا ایک غیر مطابقت پذیر طریقہ کار ہے کیونکہ درخواست کردہ جواب موصول ہونے میں کچھ وقت لگتا ہے۔ یہ اس طرح ہے کہ غیر مطابقت پذیر طریقہ کار کو استعمال کرنے کے لئے دو طریقے ہوسکتے ہیں۔ پہلا یہ ہے کہ صارف جواب کا انتظار کر سکتا ہے اور پھر کوڈ کے ساتھ دوبارہ شروع کر سکتا ہے۔ دوسرا متوازی طور پر کوڈ کو چلا رہا ہے۔

نوڈ فیچ کے ساتھ کیسے شروع کریں؟

کے ساتھ شروع کرنے یا انسٹال کرنے سے پہلے ' node-ftch 'ماڈیول، نیچے دی گئی کمانڈ کی مدد سے نوڈ پروجیکٹ کو شروع کریں:

npm init - اور

اس کمانڈ پر عمل کرنے سے ایک ' package.json ' موجودہ ڈائرکٹری میں فائل، مندرجہ ذیل ہے:

اب، انسٹال کریں ' node-ftch مندرجہ ذیل cmdlet کا استعمال کرتے ہوئے ماڈیول:

npm انسٹال نوڈ - لانا

تاہم، ٹارگٹ ماڈیول ورژن انسٹال کرنے کے لیے، درج ذیل کمانڈ کا استعمال کریں:

npm انسٹال نوڈ - fetch@ 2.0

اس صورت میں، ' 2.0 ماڈیول کا ورژن انسٹال ہو جائے گا۔

نوٹ: مثالوں کے ساتھ آگے بڑھنے سے پہلے، ایک ' index.mjs ورک اسپیس میں فائل جو فنکشنلٹیز کو لاگو کرنے کے لیے استعمال کی جائے گی۔

مثال 1: نوڈ فیچ کے ذریعے درخواستیں بھیجیں۔

' node-ftch ” ماڈیول کا استعمال ویب سرور سے ٹیکسٹ حاصل کرنے کے لیے یا Rest API کے ذریعے ڈیٹا حاصل کرنے کے لیے کیا جا سکتا ہے۔

مندرجہ ذیل کوڈ کی مثال تخلیق شدہ ' index.mjs ' فائل یوٹیوب کے ہوم پیج پر ایک سادہ گیٹ کی درخواست کرتی ہے:

درآمد لانا سے 'node-ftch' ;

لانا ( 'https://youtube.com' )

. پھر ( res => res متن ( ) )

. پھر ( متن => تسلی. لاگ ( متن ) ) ;

کوڈ کی ان لائنوں میں:

  • لوڈ کریں ' node-ftch ماڈیول کریں اور YouTube کے ہوم پیج کو مخصوص URL کے ذریعے بازیافت کریں جس پر HTTP درخواست کی گئی ہے۔
  • اس کے بعد، زنجیر ' پھر() ' کی گئی درخواست کے جواب اور ڈیٹا کو سنبھالنے کے طریقے۔
  • سابقہ ​​'پھر()' طریقہ یوٹیوب سرور سے جواب حاصل کرنے اور اسے ٹیکسٹ فارمیٹ میں تبدیل کرنے کے انتظار کی نشاندہی کرتا ہے۔
  • مؤخر الذکر 'ten()' طریقہ پچھلی تبدیلی کے نتائج کے انتظار کی نشاندہی کرتا ہے اور اسے کنسول پر دکھاتا ہے۔

آؤٹ پٹ

اب، درج ذیل cmdlet کے ذریعے کوڈ پر عمل کریں:

نوڈ انڈیکس. mjs

مندرجہ بالا کمانڈ پر عمل کرنے کے نتیجے میں کنسول پر دکھائے گئے YouTube ہوم پیج کے پورے HTML مارک اپ کو بازیافت کیا جا سکتا ہے:

مثال 2: باقی API سے JSON ڈیٹا بازیافت کریں۔

یہ مثال استعمال کرتی ہے ' node-ftch کے ذریعے جعلی ڈیٹا حاصل کرنے کے لیے JSON پلیس ہولڈر RestAPI۔ یہ اس طرح ہے کہ ' حاصل کریں() ' طریقہ سرور کے URL پر مشتمل ہے اور جواب کا انتظار کر رہا ہے:

درآمد لانا سے 'node-ftch' ;

لانا ( 'https://jsonplaceholder.typicode.com/users' )

. پھر ( res => res json ( ) )

. پھر ( json => {

تسلی. لاگ ( 'پہلی صف کا صارف ->' ) ;

تسلی. لاگ ( json [ 0 ] ) ;

تسلی. لاگ ( 'پہلی صف کے صارف کا نام ->' ) ;

تسلی. لاگ ( json [ 0 ] . نام ) ;

} )

کوڈ کے اس بلاک کے مطابق، درج ذیل اقدامات کریں:

  • HTTPS باڈی JSON فارمیٹ شدہ ڈیٹا پر مشتمل ہے جس میں صارف کا ڈیٹا ہے۔
  • اس کے بعد، ' json() ” فنکشن کا اطلاق انفرادی اندراجات اور متعلقہ اقدار کو طلب کرنے کے لیے کیا جاتا ہے۔

آؤٹ پٹ

کوڈ پر عمل کرنے کے لیے ذیل میں بیان کردہ cmdlet کا اطلاق کریں:

نوڈ انڈیکس. mjs

مثال 3: نوڈ فیچ کے ذریعے درخواستیں پوسٹ کریں۔

' node-ftch ” ماڈیول درخواستوں کو بازیافت کرنے کے بجائے پوسٹ کرنے کے لیے بھی استعمال کیا جا سکتا ہے۔ یہ 'کے ذریعے حاصل کیا جا سکتا ہے حاصل کریں() ' طریقہ جس میں سرور سے POST کی درخواستیں کرنے کے لیے ایک اضافی پیرامیٹر شامل ہوتا ہے۔

اس پیرامیٹر کے ساتھ متعدد اختیارات مختص کیے جاسکتے ہیں۔ تاہم، اس معاملے میں، ' طریقہ '،' جسم 'اور' ہیڈرز ' استعمال کیا جائے گا. مندرجہ ذیل اختیارات میں سے ہر ایک کی تفصیل ہے:

  • ' طریقہ ' آپشن اس منظر نامے میں HTTP درخواستوں کی قسم یعنی 'POST' کا تعین کرتا ہے۔
  • ' جسم ” آپشن درخواست کی باڈی پر مشتمل ہے۔
  • ' ہیڈر 'آپشن میں تمام مطلوبہ ہیڈرز شامل ہیں یعنی، ' مواد کی قسم 'اس منظر نامے میں۔

اب، JSON پلیس ہولڈر کے ' تمام ' یہ فہرست میں ایک نیا آئٹم شامل کرکے کیا جاتا ہے جس کی صارف ID '476' کے طور پر ہوتی ہے:

درآمد لانا سے 'node-ftch' ;

سب کچھ کرنے دو = {

صارف کی شناخت : 476 ,

سائٹ : 'یہ لینکس ہینٹ ہے' ,

مکمل : جھوٹا

} ;

لانا ( 'https://jsonplaceholder.typicode.com/todos' , {

طریقہ : 'پوسٹ' ,

جسم : JSON. stringify ( تمام ) ,

ہیڈرز : { 'مواد کی قسم' : 'application/json' }

} ) . پھر ( res => res json ( ) )

. پھر ( json => تسلی. لاگ ( json ) ) ;

اس کوڈ میں:

  • سب سے پہلے، ایک ٹوڈو آبجیکٹ بنائیں اور اسے جسم میں جوڑتے ہوئے JSON میں تبدیل کریں۔
  • اب، اسی طرح، مطلوبہ اختیارات کے ساتھ یو آر ایل کی وضاحت کریں ' حاصل کریں() 'طریقہ کے اختیاری پیرامیٹرز۔
  • اس کے بعد، لاگو کریں ' JSON.stringify() ویب سرور کو بھیجنے/منتقل کرنے سے پہلے آبجیکٹ کو فارمیٹ شدہ (JSON) سٹرنگ میں تبدیل کرنے کا طریقہ۔
  • آگے بڑھتے ہوئے، مشترکہ کو لاگو کریں ' پھر() جواب کا انتظار کرکے، اسے JSON میں تبدیل کرکے، اور کنسول میں بالترتیب لاگ ان کرکے ڈیٹا کو بازیافت کرنے کے طریقے۔

آؤٹ پٹ

کوڈ پر عمل کرنے کے لیے ذیل میں فراہم کردہ کمانڈ پر عمل کریں:

نوڈ انڈیکس. mjs

HTTP اسٹیٹس کوڈز کیا ہیں؟

اگلی مثال پر جانے سے پہلے، یقینی بنائیں کہ اگر جواب میں ' 3xx اسٹیٹس کوڈ، کلائنٹ کو اضافی اقدامات کرنے کی ضرورت ہے۔ اسی طرح، ' 4xx ' کوڈز ایک غلط درخواست کی نمائندگی کرتے ہیں اور ' 5xx ” کوڈز سرور کی غلطیوں سے مطابقت رکھتے ہیں۔

نوٹ: ' پکڑو() ' فنکشن اوپر زیر بحث معاملات سے نمٹ نہیں سکتا کیونکہ سرور مواصلت ایک ہموار طریقے سے گزرتی ہے۔ لہذا، اس بات کو یقینی بنانے کے لیے ایک مؤثر طریقہ کار کہ ناکام درخواستیں غلطی کو واپس کرتی ہیں، ایک ایسے فنکشن کی وضاحت کرنا ہے جو سرور کے جواب کی HTTP حیثیت کا تجزیہ کرتا ہے۔

مثال 4: مستثنیات اور حدود کا مقابلہ کرنا

بھیجی گئی درخواستوں میں کئی حدود یا مستثنیات ہو سکتی ہیں یعنی انٹرنیٹ کے ساتھ مسائل، ' حاصل کریں() فنکشن کی حدود وغیرہ۔ پکڑو() فنکشن:

فنکشن کا تجزیہ اسٹیٹس ( ایکس ) {

اگر ( ایکس. ٹھیک ہے ) {

واپسی ایکس

} اور {

پھینکنا نئی خرابی ( جواب کے حوالے سے HTTP کی حیثیت -> $ { ایکس. حالت } ( $ { ایکس. اسٹیٹس ٹیکسٹ } ) ` ) ;

}

}

لانا ( 'https://jsonplaceholder.typicode.com/MissingResource' )

. پھر ( اسٹیٹس کا تجزیہ کریں۔ )

. پھر ( ایکس => ایکس. json ( ) )

. پھر ( json => تسلی. لاگ ( json ) )

. پکڑنا ( غلطی => تسلی. لاگ ( غلطی ) ) ;

کوڈ کے اس ٹکڑوں میں:

  • سب سے پہلے، سامنا کی حدود سے نمٹنے کے لیے جواب کو پارس کرنے سے پہلے بیان کردہ پیرامیٹر والے فنکشن کی وضاحت کریں۔
  • اب، شامل کریں ' اور اگر ” درپیش غلطی یا حسب ضرورت حد کو پھینکنے کے لیے بیانات۔
  • اس کے بعد، اسی طرح، لاگو کریں ' حاصل کریں() جواب کا انتظار کر کے، اسے JSON میں تبدیل کر کے، اور کنسول میں لاگ ان کر کے ڈیٹا کو بازیافت کرنے کا طریقہ اور متعلقہ 'پھر()' طریقے۔
  • آخر میں، رن ٹائم مستثنیات کو ' رکھ کر نمٹا جا سکتا ہے۔ پکڑو() وعدہ سلسلہ کے اختتام پر طریقہ۔

آؤٹ پٹ

آخر میں، کوڈ کو چلانے کے لیے نیچے دیے گئے cmdlet کو چلائیں اور چہرے کی مستثنیات کو پھینک دیں:

نوڈ انڈیکس. mjs

'node-fetch' کے دیگر استعمال کے معاملات

' node-ftch 'بنانے کے لیے بھی استعمال کیا جا سکتا ہے' API کی درخواستیں۔ 'یا' ویب سکریپنگ ' آئیے ان استعمال کے معاملات پر تفصیل سے بات کریں۔

API کی درخواستیں کرنے کے لیے نوڈ فیچ کا استعمال

بیک اینڈ سورس کے ذریعے ٹارگٹ ڈیٹا حاصل کرنے کے لیے API کو کئی منظرناموں میں درکار ہو سکتا ہے۔ HTTP درخواستوں میں توثیق کے بہت سے طریقے ہوسکتے ہیں جیسے کہ API کلید کا استعمال جہاں API فراہم کنندہ ایک کلید فراہم کرتا ہے جو صرف صارف تک محدود ہے۔ API کو بچانے کا ایک اور نقطہ نظر 'کے ذریعے ہوسکتا ہے بنیادی تصدیق جس میں API کو طلب کرنے کے لیے ایک ہیڈر بھیجنے کی ضرورت ہے۔

مندرجہ ذیل مؤخر الذکر نقطہ نظر کا مظاہرہ ہے یعنی 'بنیادی تصدیق' پوسٹ کی درخواست میں 'کی مدد سے حاصل کریں() طریقہ:

( async ( ) => {

const ایکس = لانے کا انتظار کریں۔ ( 'http://httpbin.org/post' , {

طریقہ : 'پوسٹ' ,

ہیڈرز : {

'اجازت' : بنیادی $ { بھائی ( 'لاگ ان پاس ورڈ' ) } `

} ,

جسم : JSON. stringify ( {

'چابی' : 'قدر'

} )

} ) ;

const نتیجہ = x کا انتظار کریں۔ متن ( ) ;

تسلی. لاگ ( نتیجہ ) ;

} ) ( ) ;

مندرجہ بالا مظاہرے میں، ایک ہیڈر بھیجا جاتا ہے ' base64 'فارمیٹ کی انکوڈ شدہ تار' لاگ ان پاس ورڈ '

ویب سکریپنگ کے لیے نوڈ فیچ کا استعمال

' ویب سکریپنگ ” سے مراد وہ تکنیک ہے جس میں سائٹس سے ڈیٹا/مواد حاصل کیا جاتا ہے اور تجزیہ کیا جاتا ہے۔ یہ تجزیہ 'کے ذریعے حاصل کیا جاتا ہے چیریو ' کتب خانہ.

ذیل میں صفحہ کے عنوان کو 'کے ذریعے حاصل کرنے کا مظاہرہ ہے۔ حاصل کریں() 'طریقہ اور' چیریو ' کتب خانہ:

const lib = ضرورت ہے ( 'خوشی' ) ;

( async ( ) => {

const ایکس = لانے کا انتظار کریں۔ ( 'https://linuxhint.com/' ) ;

const اور = x کا انتظار کریں۔ متن ( ) ;

const $ = lib لوڈ ( اور ) ;

تسلی. لاگ ( $ ( 'عنوان' ) . پہلا ( ) . متن ( ) ) ;

} ) ( ) ;

یہ مثال ' کے ٹائل کو بازیافت کرتی ہے لینکس 'سائٹ کا عنوان۔

نتیجہ

node.js میں HTTP درخواستیں نوڈ فیچ کے ساتھ حاصل کی درخواستیں بھیج کر، REST API سے JSON ڈیٹا کی بازیافت، یا پوسٹ کی درخواستیں بھیج کر کی جا سکتی ہیں۔ نیز، مستثنیات اور حدود کو 'کے ذریعے مؤثر طریقے سے سنبھالا جا سکتا ہے۔ پکڑو() فنکشن