நோட்-ஃபெட்ச் மூலம் Node.js இல் HTTP கோரிக்கைகளை எவ்வாறு உருவாக்குவது

Not Hpetc Mulam Node Js Il Http Korikkaikalai Evvaru Uruvakkuvatu



HTTP கோரிக்கைகள் முக்கியமானவை மற்றும் உலகளாவிய URL களில் இருந்து தகவல்களைப் பெறுவதற்காக உருவாக்கப்படுகின்றன, அதாவது, ஒரு வலைத்தளத்தைத் தொடங்குதல், முதலியன. இந்த அணுகுமுறையானது ஆதாரங்களை அணுக இணைய சேவையகங்களுடன் தொடர்பு கொள்ள வேண்டிய அவசியம் ஏற்பட்டால் இந்த அணுகுமுறை நடைமுறைக்கு வரும். உதாரணமாக, ஒரு இணைய சேவையகம் அல்லது API இல் தரவை மீட்டெடுப்பது அல்லது இடுகையிடுவது.

ஜாவாஸ்கிரிப்ட்டில், இதை ' window.fetch() ”முறை. இருப்பினும், ' node.js ”, இந்தச் செயல்பாட்டைப் பல தொகுப்புகளைப் பயன்படுத்தி அடையலாம், அதாவது, முனை-பெறுதல் போன்றவை.

இந்த வலைப்பதிவு பின்வரும் உள்ளடக்க பகுதிகளை விளக்குகிறது:







'நோட்-ஃபெட்ச்' என்றால் என்ன?

' முனை-பெறுதல் ” என்பது இலகுரக தொகுதிக்கு ஒத்துள்ளது, இது node.js க்கு Fetch API ஐ அணுகக்கூடியதாக மாற்றுகிறது. இந்த தொகுதி பயனர்கள் ' பெறு() 'நோட்.ஜேஸில் உள்ள முறை இது பெரும்பாலும் ஜாவாஸ்கிரிப்டைப் போன்றது' window.fetch() ”முறை.



தொடரியல்(பெறும்() முறை)



எடுக்க ( url [ , விருப்பங்கள் ] ) ;

இந்த தொடரியல்:





  • ' url ” என்பது பெற வேண்டிய/மீட்டெடுக்க வேண்டிய ஆதாரத்தின் URL ஐக் குறிக்கிறது.
  • ' விருப்பங்கள் 'எடுத்தல்()' முறையைப் பயன்படுத்த வேண்டிய அவசியம் ஏற்பட்டால் '' அளவுரு தேவைப்படுகிறது. பெறு ” வேண்டுகோள்.

வருவாய் மதிப்பு

இந்தச் செயல்பாடு HTTP பதிலைப் பற்றிய தகவலைப் பின்வருவனவற்றை உள்ளடக்கிய ஒரு மறுமொழி பொருளை மீட்டெடுக்கிறது:



  • உரை: ஒரு சரம் வடிவில் பதில் உடலை மீட்டெடுக்கிறது.
  • தலைப்புகள்: பதிலளிப்பு கையாளுபவர்களைக் கொண்ட ஒரு பொருளை வழங்குகிறது.
  • json(): ஒரு JSON பொருளில் மறுமொழி உடலைப் பாகுபடுத்துகிறது.
  • நிலை உரை/நிலை: HTTP நிலைக் குறியீடு தொடர்பான தகவலை உள்ளடக்கியது.
  • சரி: கொடுக்கிறது' உண்மை நிலை 2xx நிலைக் குறியீடாக இருந்தால்.

node-fetch ஐப் பயன்படுத்துவதற்கான முன்நிபந்தனைகள்

' என்று தொடங்குவதற்கு முன் கருத்தில் கொள்ள வேண்டிய முன்நிபந்தனைகள் பின்வருமாறு முனை-பெறுதல் ”:

  • குறைந்தபட்சம் நிறுவப்பட்டது அல்லது 17.5 பதிப்பை விட சமீபத்தியது.
  • ஜாவாஸ்கிரிப்ட் பற்றிய அடிப்படை அறிவு.

நோட்-ஃபெட்ச் மூலம் node.js இல் HTTP கோரிக்கைகளை எவ்வாறு உருவாக்குவது?

HTTP கோரிக்கைகளை உருவாக்குவது ஒரு ஒத்திசைவற்ற செயல்முறையாகும், ஏனெனில் கோரப்பட்ட பதிலைப் பெறுவதற்கு சிறிது நேரம் ஆகும். ஒத்திசைவற்ற நடைமுறைகளைப் பயன்படுத்துவதற்கு இரண்டு முறைகள் இருக்க முடியும். முதலாவதாக, பயனர் பதிலுக்காகக் காத்திருந்து பின்னர் குறியீட்டைக் கொண்டு தொடரலாம். மற்றொன்று குறியீட்டை இணையாக இயக்குகிறது.

நோட்-ஃபெட்ச் மூலம் எவ்வாறு தொடங்குவது?

தொடங்கும் முன் அல்லது நிறுவும் முன் ' முனை-பெறுதல் ” தொகுதி, கீழே கொடுக்கப்பட்டுள்ள கட்டளையின் உதவியுடன் ஒரு முனை திட்டத்தை துவக்கவும்:

npm init - மற்றும்

இந்த கட்டளையை இயக்குவது ஒரு 'ஐ உருவாக்குகிறது pack.json தற்போதைய கோப்பகத்தில் உள்ள கோப்பு பின்வருமாறு:

இப்போது, ​​நிறுவவும் ' முனை-பெறுதல் பின்வரும் cmdlet ஐப் பயன்படுத்தி தொகுதி:

npm நிறுவல் முனை - எடுக்க

இருப்பினும், இலக்கு தொகுதி பதிப்பை நிறுவ, பின்வரும் கட்டளையைப் பயன்படுத்தவும்:

npm நிறுவல் முனை - எடுக்க@ 2.0

இந்த வழக்கில், ' 2.0 ” தொகுதியின் பதிப்பு நிறுவப்படும்.

குறிப்பு: எடுத்துக்காட்டுகளுடன் தொடர்வதற்கு முன், '' ஒன்றை உருவாக்கவும் index.mjs ” பணியிடத்தில் உள்ள கோப்பு செயல்பாடுகளைப் பயன்படுத்தப் பயன்படும்.

எடுத்துக்காட்டு 1: நோட்-ஃபெட்ச் மூலம் பெறுக கோரிக்கைகளை அனுப்பவும்

' முனை-பெறுதல் ” தொகுதி ஒரு வலை சேவையகத்திலிருந்து உரையைப் பெற அல்லது ரெஸ்ட் API வழியாக தரவுகளைப் பெற பயன்படுத்தப்படலாம்.

கீழே உள்ள குறியீட்டு உதாரணம் உருவாக்கப்பட்டதில் எழுதப்பட்டுள்ளது ' index.mjs 'கோப்பு YouTube முகப்புப் பக்கத்திற்கு ஒரு எளிய பெறுக கோரிக்கையை செய்கிறது:

இறக்குமதி எடுக்க இருந்து 'நோட்-ஃபெட்ச்' ;

எடுக்க ( 'https://youtube.com' )

. பிறகு ( ரெஸ் => ரெஸ். உரை ( ) )

. பிறகு ( உரை => பணியகம். பதிவு ( உரை ) ) ;

இந்த கோட் வரிகளில்:

  • ஏற்றவும்' முனை-பெறுதல் ” HTTP கோரிக்கை செய்யப்பட்ட குறிப்பிட்ட URL வழியாக YouTube இன் முகப்புப் பக்கத்தை தொகுதி செய்து மீட்டெடுக்கவும்.
  • அதன் பிறகு, சங்கிலி ' பிறகு() ” செய்யப்பட்ட கோரிக்கையிலிருந்து பதில் மற்றும் தரவை கையாளும் முறைகள்.
  • முந்தைய “பின்()” முறையானது, YouTube சேவையகத்திலிருந்து பதிலைப் பெறுவதற்குக் காத்திருப்பதைக் குறிக்கிறது மற்றும் அதை உரை வடிவத்திற்கு மாற்றுகிறது.
  • பிந்தைய 'பின் ()' முறை முந்தைய மாற்றத்தின் விளைவுக்காக காத்திருப்பதைக் குறிக்கிறது மற்றும் அதை கன்சோலில் காண்பிக்கும்.

வெளியீடு

இப்போது, ​​பின்வரும் cmdlet வழியாக குறியீட்டை இயக்கவும்:

முனை குறியீடு. mjs

மேலே உள்ள கட்டளையை செயல்படுத்துவது, கன்சோலில் காட்டப்படும் YouTube முகப்புப் பக்கத்தின் முழு HTML மார்க்அப்பையும் மீட்டெடுக்கும்:

எடுத்துக்காட்டு 2: Rest API இலிருந்து JSON தரவை மீட்டெடுக்கவும்

இந்த உதாரணம் பயன்படுத்துகிறது ' முனை-பெறுதல் ” மூலம் போலியான தரவுகளைப் பெற JSONPlaceholder RestAPI. அது அப்படித்தான் ' பெறு() ” முறை சர்வரின் URL ஐ உள்ளடக்கியது மற்றும் பதிலுக்காக காத்திருக்கிறது:

இறக்குமதி எடுக்க இருந்து 'நோட்-ஃபெட்ச்' ;

எடுக்க ( 'https://jsonplaceholder.typicode.com/users' )

. பிறகு ( ரெஸ் => ரெஸ். json ( ) )

. பிறகு ( json => {

பணியகம். பதிவு ( 'முதல் வரிசை பயனர் ->' ) ;

பணியகம். பதிவு ( json [ 0 ] ) ;

பணியகம். பதிவு ( 'முதல் வரிசை பயனர் பெயர் -> ' ) ;

பணியகம். பதிவு ( json [ 0 ] . பெயர் ) ;

} )

குறியீட்டின் இந்த தொகுதியின் படி, பின்வரும் படிகளைச் செய்யவும்:

  • HTTPS அமைப்பு பயனரின் தரவைக் கொண்ட JSON வடிவமைக்கப்பட்ட தரவைக் கொண்டுள்ளது.
  • அதன் பிறகு, ' json() 'செயல்பாடு தனிப்பட்ட உள்ளீடுகள் மற்றும் தொடர்புடைய மதிப்புகளை செயல்படுத்த பயன்படுத்தப்படுகிறது.

வெளியீடு

குறியீட்டை இயக்க கீழே குறிப்பிடப்பட்டுள்ள cmdlet ஐப் பயன்படுத்தவும்:

முனை குறியீடு. mjs

எடுத்துக்காட்டு 3: நோட்-ஃபெட்ச் வழியாக கோரிக்கைகளை இடுகையிடவும்

' முனை-பெறுதல் கோரிக்கைகளை மீட்டெடுப்பதற்குப் பதிலாக அவற்றை இடுகையிடவும் தொகுதி பயன்படுத்தப்படலாம். இதை '' மூலம் அடையலாம் பெறு() ” முறையானது, சேவையகத்திற்கு POST கோரிக்கைகளைச் செய்வதற்கான கூடுதல் அளவுருவை உள்ளடக்கியது.

இந்த அளவுருவுடன் ஒதுக்கக்கூடிய பல விருப்பங்கள் உள்ளன. இருப்பினும், இந்த வழக்கில், ' முறை ',' உடல் 'மற்றும்' தலைப்புகள் ' பயன்படுத்தப்படும். ஒவ்வொரு விருப்பத்தின் விளக்கமும் பின்வருமாறு:

  • ' முறை ” என்ற விருப்பம் HTTP கோரிக்கைகளின் வகையை அமைக்கிறது, அதாவது இந்தச் சூழ்நிலையில் “POST”.
  • ' உடல் ” விருப்பம் கோரிக்கையின் உடலை உள்ளடக்கியது.
  • ' தலைப்பு 'விருப்பத்தில் தேவையான அனைத்து தலைப்புகளும் உள்ளன, அதாவது,' உள்ளடக்க வகை ” இந்த சூழ்நிலையில்.

இப்போது, ​​JSON ஒதுக்கிடத்தில் புதிய உருப்படியைச் சேர்ப்பதன் மூலம் இடுகை கோரிக்கைகளை அனுப்புவதற்கான நடைமுறைச் செயலாக்கத்திற்குச் செல்லவும் ' அனைத்து ”. பயனர் ஐடியை “476” எனக் கொண்ட பட்டியலில் புதிய உருப்படியைச் சேர்ப்பதன் மூலம் இது செய்யப்படுகிறது:

இறக்குமதி எடுக்க இருந்து 'நோட்-ஃபெட்ச்' ;

எல்லாவற்றையும் விடுங்கள் = {

பயனர் ஐடி : 476 ,

தளம் : 'இது Linuxhint' ,

நிறைவு : பொய்

} ;

எடுக்க ( 'https://jsonplaceholder.typicode.com/todos' , {

முறை : 'அஞ்சல்' ,

உடல் : JSON. stringify ( அனைத்து ) ,

தலைப்புகள் : { 'உள்ளடக்கம்-வகை' : 'விண்ணப்பம்/json' }

} ) . பிறகு ( ரெஸ் => ரெஸ். json ( ) )

. பிறகு ( json => பணியகம். பதிவு ( json ) ) ;

இந்த குறியீட்டில்:

  • முதலில், ஒரு டோடோ பொருளை உருவாக்கி, அதை உடலில் சேர்க்கும்போது அதை JSON ஆக மாற்றவும்.
  • இப்போது, ​​அதே போல், தேவையான விருப்பங்களுடன் URL ஐ '' என குறிப்பிடவும் பெறு() ”முறையின் விருப்ப அளவுருக்கள்.
  • அதன் பிறகு, விண்ணப்பிக்கவும் ' JSON.stringify() ” பொருளை இணைய சேவையகத்திற்கு அனுப்புவதற்கு/ அனுப்புவதற்கு முன் வடிவமைத்த (JSON) சரத்திற்கு மாற்றும் முறை.
  • முன்னோக்கி நகர்ந்து, ஒருங்கிணைந்த செயல்படுத்தவும் ' பிறகு() ” முறையே பதிலுக்காக காத்திருந்து, அதை JSON ஆக மாற்றி, கன்சோலில் உள்நுழைவதன் மூலம் தரவை மீட்டெடுக்கும் முறைகள்.

வெளியீடு

குறியீட்டை இயக்க கீழே கொடுக்கப்பட்டுள்ள கட்டளையை இயக்கவும்:

முனை குறியீடு. mjs

HTTP நிலைக் குறியீடுகள் என்றால் என்ன?

அடுத்த உதாரணத்திற்குச் செல்வதற்கு முன், பதில் ' 3xx 'நிலைக் குறியீடு, வாடிக்கையாளர் கூடுதல் நடவடிக்கைகளை எடுக்க வேண்டும். அதேபோல், ' 4xx 'குறியீடுகள் தவறான கோரிக்கையைக் குறிக்கின்றன மற்றும் ' 5xx ” குறியீடுகள் சர்வர் பிழைகளுக்கு ஒத்திருக்கும்.

குறிப்பு: ' பிடி() சர்வர் தகவல்தொடர்பு நெறிப்படுத்தப்பட்ட முறையில் மேற்கொள்ளப்படுவதால், 'செயல்பாடு மேலே விவாதிக்கப்பட்ட நிகழ்வுகளை சமாளிக்க முடியாது. எனவே, தோல்வியுற்ற கோரிக்கைகள் பிழையைத் திருப்பித் தருவதை உறுதி செய்வதற்கான ஒரு பயனுள்ள அணுகுமுறை, சர்வரின் பதிலின் HTTP நிலையை பகுப்பாய்வு செய்யும் செயல்பாட்டை வரையறுப்பதாகும்.

எடுத்துக்காட்டு 4: விதிவிலக்குகள் மற்றும் வரம்புகளை சமாளித்தல்

அனுப்பப்பட்ட கோரிக்கைகளில் பல வரம்புகள் அல்லது விதிவிலக்குகள் இருக்கலாம் அதாவது இணையத்தில் உள்ள சிக்கல்கள், “ பெறு() 'செயல்பாட்டு வரம்புகள், முதலியன. இந்த விதிவிலக்குகளை' சேர்ப்பதன் மூலம் கையாளலாம் பிடி() 'செயல்பாடு:

செயல்பாடு பகுப்பாய்வு நிலை ( எக்ஸ் ) {

என்றால் ( எக்ஸ். சரி ) {

திரும்ப எக்ஸ்

} வேறு {

வீசு புதிய பிழை ( `பதிலளிப்பைப் பொறுத்து HTTP நிலை -> $ { எக்ஸ். நிலை } ( $ { எக்ஸ். நிலை உரை } ) ` ) ;

}

}

எடுக்க ( 'https://jsonplaceholder.typicode.com/MissingResource' )

. பிறகு ( நிலை பகுப்பாய்வு )

. பிறகு ( எக்ஸ் => எக்ஸ். json ( ) )

. பிறகு ( json => பணியகம். பதிவு ( json ) )

. பிடி ( தவறு => பணியகம். பதிவு ( தவறு ) ) ;

குறியீட்டின் இந்த துணுக்கில்:

  • முதலில், எதிர்கொள்ளும் வரம்புகளைச் சமாளிக்க பதிலைப் பாகுபடுத்தும் முன் கூறப்பட்ட அளவுருவைக் கொண்ட ஒரு செயல்பாட்டை வரையறுக்கவும்.
  • இப்போது, ​​அடங்கும் ' என்றால்/வேறு எதிர்கொள்ளும் பிழை அல்லது தனிப்பயன் வரம்பை வீசுவதற்கான அறிக்கைகள்.
  • அதன் பிறகு, இதேபோல், '' பெறு() ” முறை மற்றும் அதனுடன் தொடர்புடைய “then()” முறைகள் பதிலுக்காக காத்திருந்து, அதை JSON ஆக மாற்றி, கன்சோலில் உள்நுழைவதன் மூலம் தரவை மீட்டெடுக்கிறது.
  • கடைசியாக, இயக்க நேர விதிவிலக்குகளை '' வைப்பதன் மூலம் சமாளிக்க முடியும். பிடி() வாக்குறுதி சங்கிலியின் முடிவில் முறை.

வெளியீடு

கடைசியாக, குறியீட்டை இயக்க கீழே கொடுக்கப்பட்டுள்ள cmdlet ஐ இயக்கவும் மற்றும் எதிர்கொள்ளும் விதிவிலக்குகளை தூக்கி எறியவும்:

முனை குறியீடு. mjs

'நோட்-ஃபெட்ச்' இன் பிற பயன்பாட்டு வழக்குகள்

' முனை-பெறுதல் 'தயாரிப்பதற்கும் பயன்படுத்தலாம்' API கோரிக்கைகள் ' அல்லது ' வலை ஸ்கிராப்பிங் ”. இந்த பயன்பாட்டு நிகழ்வுகளை விரிவாக விவாதிப்போம்.

API கோரிக்கைகளை உருவாக்குவதற்கு முனை-பெறுதலைப் பயன்படுத்துதல்

பின்-இறுதி மூலத்தின் மூலம் இலக்குத் தரவைப் பெற பல சூழ்நிலைகளில் API தேவைப்படலாம். HTTP கோரிக்கைகள் API விசையைப் பயன்படுத்துதல் போன்ற பல அங்கீகார முறைகளைக் கொண்டிருக்கலாம், அங்கு API வழங்குநர் பயனருக்கு மட்டுமே வரையறுக்கப்பட்ட விசையை வழங்குகிறது. API ஐ பாதுகாக்க மற்றொரு அணுகுமுறை ' அடிப்படை அங்கீகாரம் ” இதில் API ஐ செயல்படுத்த ஒரு தலைப்பு அனுப்பப்பட வேண்டும்.

பின்வருவது பிந்தைய அணுகுமுறையின் விளக்கமாகும், அதாவது, 'அடிப்படை அங்கீகாரம்' பின் கோரிக்கையின் உதவியுடன் ' பெறு() ”முறை:

( ஒத்திசைவு ( ) => {

நிலையான எக்ஸ் = பெற காத்திருக்கவும் ( 'http://httpbin.org/post' , {

முறை : 'அஞ்சல்' ,

தலைப்புகள் : {

'அங்கீகாரம்' : `அடிப்படை $ { சகோ ( 'உள்நுழைவு: கடவுச்சொல்' ) } `

} ,

உடல் : JSON. stringify ( {

'விசை' : 'மதிப்பு'

} )

} ) ;

நிலையான விளைவாக = x காத்திருங்கள். உரை ( ) ;

பணியகம். பதிவு ( விளைவாக ) ;

} ) ( ) ;

மேலே உள்ள ஆர்ப்பாட்டத்தில், ஒரு தலைப்பு '' அடிப்படை64 'வடிவத்தின் குறியிடப்பட்ட சரம்' உள்நுழைவு: கடவுச்சொல் ”.

வலை ஸ்கிராப்பிங்கிற்கான முனை-பெறுதலைப் பயன்படுத்துதல்

' வலை ஸ்கிராப்பிங் ” என்பது தளங்களிலிருந்து தரவு/உள்ளடக்கம் பெறப்பட்டு பாகுபடுத்தப்படும் நுட்பத்தைக் குறிக்கிறது. இந்த பாகுபடுத்தல் இதன் மூலம் அடையப்படுகிறது ' மகிழ்ச்சி ” நூலகம்.

பக்கத்தின் தலைப்பைப் பெறுவதற்கான செயல்விளக்கம் கீழே உள்ளது ' பெறு() 'முறை மற்றும்' மகிழ்ச்சி 'நூலகம்:

நிலையான லிப் = தேவை ( 'மகிழ்ச்சி' ) ;

( ஒத்திசைவு ( ) => {

நிலையான எக்ஸ் = பெற காத்திருக்கவும் ( 'https://linuxhint.com/' ) ;

நிலையான மற்றும் = x காத்திருங்கள். உரை ( ) ;

நிலையான $ = லிப் சுமை ( மற்றும் ) ;

பணியகம். பதிவு ( $ ( 'தலைப்பு' ) . முதலில் ( ) . உரை ( ) ) ;

} ) ( ) ;

இந்த உதாரணம் 'என்ற ஓடுகளை மீட்டெடுக்கிறது. லினக்ஸ் ” தளத்தின் தலைப்பு.

முடிவுரை

node.js இல் உள்ள HTTP கோரிக்கைகளை பெறுவதற்கான கோரிக்கைகளை அனுப்புவதன் மூலமோ, REST API இலிருந்து JSON தரவை மீட்டெடுப்பதன் மூலமோ அல்லது இடுகை கோரிக்கைகளை அனுப்புவதன் மூலமோ node-fetch மூலம் உருவாக்க முடியும். மேலும், விதிவிலக்குகள் மற்றும் வரம்புகளை திறம்பட கையாள முடியும் ' பிடி() ” செயல்பாடு.