నోడ్-ఫెచ్‌తో Node.jsలో HTTP అభ్యర్థనలను ఎలా తయారు చేయాలి

Nod Phec To Node Jslo Http Abhyarthanalanu Ela Tayaru Ceyali



HTTP అభ్యర్థనలు కీలకమైనవి మరియు ప్రపంచవ్యాప్తంగా URLల నుండి సమాచారాన్ని పొందడం కోసం రూపొందించబడ్డాయి, అనగా వెబ్‌సైట్‌ను ప్రారంభించడం మొదలైనవి. వనరులను యాక్సెస్ చేయడానికి వెబ్ అప్లికేషన్ వెబ్ సర్వర్‌లతో కమ్యూనికేషన్‌ను ఏర్పాటు చేయవలసి వచ్చినప్పుడు ఈ విధానం అమలులోకి వస్తుంది. ఉదాహరణకు, వెబ్ సర్వర్ లేదా APIకి డేటాను తిరిగి పొందడం లేదా పోస్ట్ చేయడం.

జావాస్క్రిప్ట్‌లో, ఇది '' ద్వారా నిర్వహించబడుతుంది window.fetch() ” పద్ధతి. అయితే, లో ' node.js ”, ఈ ఫంక్షనాలిటీని బహుళ ప్యాకేజీలు అంటే నోడ్-ఫెచ్ మొదలైన వాటిని ఉపయోగించి సాధించవచ్చు.

ఈ బ్లాగ్ క్రింది కంటెంట్ ప్రాంతాలను వివరిస్తుంది:







'నోడ్-ఫెచ్' అంటే ఏమిటి?

ది ' నోడ్-పొందడం ” అనేది ఒక తేలికపాటి మాడ్యూల్‌కు అనుగుణంగా ఉంటుంది, ఇది పొందడం APIని node.jsకి యాక్సెస్ చేయగలదు. ఈ మాడ్యూల్ వినియోగదారులను ఉపయోగించడానికి కూడా అనుమతిస్తుంది ' పొందు() 'node.jsలో జావాస్క్రిప్ట్‌ను పోలి ఉండే పద్ధతి' window.fetch() ” పద్ధతి.



సింటాక్స్(పొందడం() విధానం)



తీసుకుని ( url [ , ఎంపికలు ] ) ;

ఈ వాక్యనిర్మాణంలో:





  • ' url ” అనేది పొందవలసిన/తిరిగి పొందవలసిన వనరు యొక్క URLని సూచిస్తుంది.
  • ది ' ఎంపికలు 'ఫెచ్()' పద్ధతిని ఉపయోగించాల్సిన అవసరం ఉన్నప్పుడు 'పరామితి అవసరమవుతుంది' పొందండి ” అభ్యర్థన.

రిటర్న్ విలువ

ఈ ఫంక్షన్ క్రింది విధంగా HTTP ప్రతిస్పందనకు సంబంధించిన సమాచారాన్ని కలిగి ఉన్న ప్రతిస్పందన వస్తువును తిరిగి పొందుతుంది:



  • వచనం: రెస్పాన్స్ బాడీని స్ట్రింగ్ రూపంలో తిరిగి పొందుతుంది.
  • శీర్షికలు: ప్రతిస్పందన హ్యాండ్లర్‌లను కలిగి ఉన్న వస్తువును అందిస్తుంది.
  • json(): JSON ఆబ్జెక్ట్‌లో రెస్పాన్స్ బాడీని అన్వయిస్తుంది.
  • స్థితి వచనం/స్థితి: HTTP స్థితి కోడ్‌కు సంబంధించిన సమాచారాన్ని కలిగి ఉంటుంది.
  • అలాగే: ఇస్తుంది' నిజం ” స్థితి 2xx స్థితి కోడ్ అయితే.

నోడ్-ఫెచ్‌ని ఉపయోగించడం కోసం ముందస్తు అవసరాలు

'తో ప్రారంభించే ముందు పరిగణించవలసిన ముందస్తు అవసరాలు క్రిందివి నోడ్-పొందడం ”:

  • కనీసం ఇన్‌స్టాల్ చేయబడింది లేదా 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' )

. అప్పుడు ( res => res. వచనం ( ) )

. అప్పుడు ( వచనం => కన్సోల్. లాగ్ ( వచనం ) ) ;

ఈ కోడ్ లైన్లలో:

  • లోడ్ చేయి' నోడ్-పొందడం ” HTTP అభ్యర్థన చేయబడిన పేర్కొన్న URL ద్వారా YouTube హోమ్‌పేజీని మాడ్యూల్ చేసి తిరిగి పొందండి.
  • ఆ తరువాత, గొలుసు ' అప్పుడు () ” చేసిన అభ్యర్థన నుండి ప్రతిస్పందన మరియు డేటాను నిర్వహించడానికి పద్ధతులు.
  • మునుపటి “తరువాత()” పద్ధతి YouTube సర్వర్ నుండి ప్రతిస్పందనను పొందడానికి వేచి ఉండడాన్ని సూచిస్తుంది మరియు దానిని టెక్స్ట్ ఆకృతికి మార్చుతుంది.
  • తరువాతి “అప్పుడు ()” పద్ధతి మునుపటి రూపాంతరం యొక్క ఫలితం కోసం వేచి ఉండడాన్ని సూచిస్తుంది మరియు దానిని కన్సోల్‌లో ప్రదర్శిస్తుంది.

అవుట్‌పుట్

ఇప్పుడు, కింది cmdlet ద్వారా కోడ్‌ని అమలు చేయండి:

నోడ్ సూచిక. mjs

కన్సోల్‌లో ప్రదర్శించబడే YouTube హోమ్‌పేజీ యొక్క మొత్తం HTML మార్కప్‌ను తిరిగి పొందడంలో పై ఆదేశాన్ని అమలు చేయడం వలన ఫలితాలు:

ఉదాహరణ 2: మిగిలిన API నుండి JSON డేటాను తిరిగి పొందండి

ఈ ఉదాహరణ ఉపయోగిస్తుంది ' నోడ్-పొందడం ” ద్వారా నకిలీ డేటా పొందడానికి JSONప్లేస్‌హోల్డర్ RestAPI. ఇది అటువంటిది ' పొందు() ” పద్ధతి సర్వర్ యొక్క URLని కలిగి ఉంటుంది మరియు ప్రతిస్పందన కోసం వేచి ఉంది:

దిగుమతి తీసుకుని నుండి 'నోడ్-ఫెచ్' ;

తీసుకుని ( 'https://jsonplaceholder.typicode.com/users' )

. అప్పుడు ( res => res. json ( ) )

. అప్పుడు ( json => {

కన్సోల్. లాగ్ ( 'మొదటి అర్రే వినియోగదారు -> ' ) ;

కన్సోల్. లాగ్ ( json [ 0 ] ) ;

కన్సోల్. లాగ్ ( 'మొదటి అర్రే వినియోగదారు పేరు -> ' ) ;

కన్సోల్. లాగ్ ( json [ 0 ] . పేరు ) ;

} )

ఈ కోడ్ బ్లాక్ ప్రకారం, ఈ క్రింది దశలను చేయండి:

  • HTTPS బాడీ వినియోగదారు డేటాను కలిగి ఉన్న JSON ఫార్మాట్ చేసిన డేటాను కలిగి ఉంటుంది.
  • ఆ తరువాత, ' json() ” ఫంక్షన్ వ్యక్తిగత ఎంట్రీలు మరియు సంబంధిత విలువలను అమలు చేయడానికి వర్తించబడుతుంది.

అవుట్‌పుట్

కోడ్‌ని అమలు చేయడానికి దిగువ పేర్కొన్న cmdletని వర్తించండి:

నోడ్ సూచిక. mjs

ఉదాహరణ 3: నోడ్-ఫెచ్ ద్వారా అభ్యర్థనలను పోస్ట్ చేయండి

ది ' నోడ్-పొందడం ” మాడ్యూల్ అభ్యర్థనలను తిరిగి పొందే బదులు పోస్ట్ చేయడానికి కూడా ఉపయోగించవచ్చు. దీని ద్వారా సాధించవచ్చు ' పొందు() ” సర్వర్‌కు POST అభ్యర్థనలను చేయడానికి అదనపు పరామితిని కలిగి ఉన్న పద్ధతి.

ఈ పరామితితో కేటాయించబడే అనేక ఎంపికలు ఉన్నాయి. అయితే, ఈ సందర్భంలో, ' పద్ధతి ',' శరీరం 'మరియు' శీర్షికలు ' ఉపయొగించబడుతుంది. ప్రతి ఎంపికల వివరణ క్రింది విధంగా ఉంది:

  • ది ' పద్ధతి ” ఎంపిక HTTP అభ్యర్థనల రకాన్ని సెట్ చేస్తుంది అంటే, ఈ దృష్టాంతంలో “POST”.
  • ది ' శరీరం ” ఎంపిక అభ్యర్థన యొక్క భాగాన్ని కలిగి ఉంటుంది.
  • ది ' శీర్షిక ” ఎంపికలో అవసరమైన అన్ని హెడర్‌లు ఉన్నాయి అంటే, “ కంటెంట్-రకం ” ఈ దృష్టాంతంలో.

ఇప్పుడు, JSON ప్లేస్‌హోల్డర్‌కి కొత్త అంశాన్ని జోడించడం ద్వారా పోస్ట్ అభ్యర్థనలను పంపే ఆచరణాత్మక అమలుకు వెళ్లండి ' అన్ని ”. “476”గా userIDని కలిగి ఉన్న జాబితాకు కొత్త అంశాన్ని జోడించడం ద్వారా ఇది జరుగుతుంది:

దిగుమతి తీసుకుని నుండి 'నోడ్-ఫెచ్' ;

ప్రతిదీ తెలియజేయండి = {

వినియోగదారుని గుర్తింపు : 476 ,

సైట్ : 'ఇది Linuxhint' ,

పూర్తయింది : తప్పుడు

} ;

తీసుకుని ( 'https://jsonplaceholder.typicode.com/todos' , {

పద్ధతి : 'పోస్ట్' ,

శరీరం : JSON. stringify ( అన్ని ) ,

శీర్షికలు : { 'కంటెంట్-టైప్' : 'అప్లికేషన్/json' }

} ) . అప్పుడు ( res => res. json ( ) )

. అప్పుడు ( json => కన్సోల్. లాగ్ ( json ) ) ;

ఈ కోడ్‌లో:

  • అన్నింటిలో మొదటిది, టోడో ఆబ్జెక్ట్‌ని సృష్టించి, దానిని శరీరానికి జోడించేటప్పుడు దానిని JSONగా మార్చండి.
  • ఇప్పుడు, అదే విధంగా, అవసరమైన ఎంపికలతో URLని '' పొందు() ” పద్ధతి యొక్క ఐచ్ఛిక పారామితులు.
  • ఆ తరువాత, వర్తించు ' JSON.stringify() ” ఆబ్జెక్ట్‌ను వెబ్ సర్వర్‌కి పంపే/ప్రసారం చేసే ముందు ఫార్మాట్ చేసిన (JSON) స్ట్రింగ్‌గా మార్చే పద్ధతి.
  • ముందుకు సాగడం, కలిపి అమలు చేయడం ' అప్పుడు () ” ప్రతిస్పందన కోసం వేచి ఉండి, దానిని JSONకి మార్చడం మరియు కన్సోల్‌కు లాగింగ్ చేయడం ద్వారా డేటాను తిరిగి పొందే పద్ధతులు.

అవుట్‌పుట్

కోడ్‌ను అమలు చేయడానికి దిగువ అందించిన ఆదేశాన్ని అమలు చేయండి:

నోడ్ సూచిక. mjs

HTTP స్థితి కోడ్‌లు ఏమిటి?

తదుపరి ఉదాహరణకి వెళ్లే ముందు, ప్రతిస్పందనలో ఒక “ఉంటే 3xx ” స్థితి కోడ్, క్లయింట్ ద్వారా అదనపు చర్యలు తీసుకోవాలి. అదేవిధంగా, ' 4xx 'కోడ్‌లు చెల్లని అభ్యర్థనను సూచిస్తాయి మరియు ' 5xx ”కోడ్‌లు సర్వర్ ఎర్రర్‌లకు అనుగుణంగా ఉంటాయి.

గమనిక: ది ' క్యాచ్ () సర్వర్ కమ్యూనికేషన్ క్రమబద్ధమైన పద్ధతిలో జరుగుతుంది కాబట్టి 'పైన చర్చించబడిన కేసులను ఫంక్షన్ భరించలేదు. అందువల్ల, విఫలమైన అభ్యర్థనలు లోపాన్ని తిరిగి ఇచ్చాయని నిర్ధారించడానికి సమర్థవంతమైన విధానం సర్వర్ ప్రతిస్పందన యొక్క HTTP స్థితిని విశ్లేషించే ఫంక్షన్‌ను నిర్వచించడం.

ఉదాహరణ 4: మినహాయింపులు మరియు పరిమితులను ఎదుర్కోవడం

పంపిన అభ్యర్థనలతో అనేక పరిమితులు లేదా మినహాయింపులు ఉండవచ్చు అంటే, ఇంటర్నెట్‌తో సమస్యలు, “ పొందు() ” ఫంక్షన్ పరిమితులు మొదలైనవి. ఈ మినహాయింపులను జోడించడం ద్వారా నిర్వహించవచ్చు క్యాచ్ () 'ఫంక్షన్:

ఫంక్షన్ విశ్లేషణ స్థితి ( x ) {

ఉంటే ( x అలాగే ) {

తిరిగి x

} లేకపోతే {

త్రో కొత్త లోపం ( `ప్రతిస్పందనకు సంబంధించి HTTP స్థితి -> $ { x హోదా } ( $ { x స్థితి వచనం } ) ` ) ;

}

}

తీసుకుని ( 'https://jsonplaceholder.typicode.com/MissingResource' )

. అప్పుడు ( స్థితిని విశ్లేషించండి )

. అప్పుడు ( x => x json ( ) )

. అప్పుడు ( json => కన్సోల్. లాగ్ ( json ) )

. క్యాచ్ ( తప్పు => కన్సోల్. లాగ్ ( తప్పు ) ) ;

ఈ కోడ్ స్నిప్పెట్‌లో:

  • ముందుగా, ఎదుర్కొన్న పరిమితులను ఎదుర్కోవటానికి ప్రతిస్పందనను అన్వయించే ముందు పేర్కొన్న పరామితిని కలిగి ఉన్న ఫంక్షన్‌ను నిర్వచించండి.
  • ఇప్పుడు, చేర్చండి ' ఒకవేళ/లేకపోతే ఎదుర్కొన్న దోషాన్ని లేదా అనుకూల పరిమితిని విసిరేందుకు ” ప్రకటనలు.
  • ఆ తర్వాత, అదేవిధంగా, వర్తించు ' పొందు() ప్రతిస్పందన కోసం వేచి ఉండి, దానిని JSONగా మార్చడం మరియు కన్సోల్‌కి లాగిన్ చేయడం ద్వారా డేటాను తిరిగి పొందేందుకు ”మెథడ్ మరియు అనుబంధిత “అప్పుడు()” పద్ధతులు.
  • చివరగా, రన్‌టైమ్ మినహాయింపులను “ని ఉంచడం ద్వారా పరిష్కరించవచ్చు. క్యాచ్ () ” వాగ్దాన గొలుసు ముగింపులో పద్ధతి.

అవుట్‌పుట్

చివరగా, కోడ్‌ని అమలు చేయడానికి మరియు ఎదుర్కొన్న మినహాయింపులను త్రోయడానికి క్రింద ఇవ్వబడిన cmdletని అమలు చేయండి:

నోడ్ సూచిక. mjs

'నోడ్-ఫెచ్' యొక్క ఇతర ఉపయోగ సందర్భాలు

ది ' నోడ్-పొందడం 'తయారు చేయడానికి కూడా ఉపయోగించవచ్చు' API అభ్యర్థనలు 'లేదా' వెబ్ స్క్రాపింగ్ ”. ఈ వినియోగ కేసులను వివరంగా చర్చిద్దాం.

API అభ్యర్థనల కోసం నోడ్-ఫెచ్ యొక్క వినియోగం

బ్యాక్ ఎండ్ సోర్స్ ద్వారా టార్గెట్ డేటాను పొందేందుకు అనేక సందర్భాల్లో API అవసరం కావచ్చు. HTTP అభ్యర్థనలు API కీని ఉపయోగించడం వంటి అనేక ప్రామాణీకరణ పద్ధతులను కలిగి ఉంటాయి, ఇక్కడ API ప్రొవైడర్ వినియోగదారుకు మాత్రమే పరిమితం చేయబడిన కీని అందిస్తుంది. APIని రక్షించడానికి మరొక విధానం '' ప్రాథమిక ప్రమాణీకరణ ” దీనిలో APIని అమలు చేయడానికి హెడర్‌ని పంపాలి.

తరువాతి విధానం యొక్క ప్రదర్శన, అనగా, పోస్ట్ అభ్యర్థనలో “ప్రాథమిక ప్రమాణీకరణ” సహాయంతో పొందు() 'పద్ధతి:

( సమకాలీకరణ ( ) => {

స్థిరంగా x = తీసుకురావడానికి వేచి ఉండండి ( 'http://httpbin.org/post' , {

పద్ధతి : 'పోస్ట్' ,

శీర్షికలు : {

'అధికారం' : `ప్రాథమిక $ { బ్రో ( 'లాగిన్: పాస్‌వర్డ్' ) } `

} ,

శరీరం : JSON. stringify ( {

'కీ' : 'విలువ'

} )

} ) ;

స్థిరంగా ఫలితం = x కోసం వేచి ఉండండి. వచనం ( ) ;

కన్సోల్. లాగ్ ( ఫలితం ) ;

} ) ( ) ;

పై ప్రదర్శనలో, ''తో హెడర్ పంపబడుతుంది బేస్64 'ఫార్మాట్ యొక్క ఎన్కోడ్ స్ట్రింగ్' లాగిన్: పాస్‌వర్డ్ ”.

వెబ్ స్క్రాపింగ్ కోసం నోడ్-ఫెచ్ యొక్క వినియోగం

' వెబ్ స్క్రాపింగ్ ” అనేది సైట్‌ల నుండి డేటా/కంటెంట్‌ని పొంది అన్వయించే సాంకేతికతను సూచిస్తుంది. ఈ పార్సింగ్ దీని ద్వారా సాధించబడుతుంది చీరియో ' గ్రంధాలయం.

'' ద్వారా పేజీ యొక్క శీర్షికను పొందడం యొక్క ప్రదర్శన క్రింద ఉంది పొందు() 'పద్ధతి మరియు' చీరియో ' గ్రంధాలయం:

స్థిరంగా లిబ్ = అవసరం ( 'ఉల్లాసమైన' ) ;

( సమకాలీకరణ ( ) => {

స్థిరంగా x = తీసుకురావడానికి వేచి ఉండండి ( 'https://linuxhint.com/' ) ;

స్థిరంగా మరియు = x కోసం వేచి ఉండండి. వచనం ( ) ;

స్థిరంగా $ = లిబ్ లోడ్ ( మరియు ) ;

కన్సోల్. లాగ్ ( $ ( 'శీర్షిక' ) . ప్రధమ ( ) . వచనం ( ) ) ;

} ) ( ) ;

ఈ ఉదాహరణ ' యొక్క టైల్‌ను తిరిగి పొందుతుంది Linux ” సైట్ యొక్క శీర్షిక.

ముగింపు

node.jsలోని HTTP అభ్యర్థనలను పొందండి అభ్యర్థనలను పంపడం ద్వారా, REST API నుండి JSON డేటాను తిరిగి పొందడం లేదా పోస్ట్ అభ్యర్థనలను పంపడం ద్వారా నోడ్-ఫెచ్‌తో చేయవచ్చు. అలాగే, మినహాయింపులు మరియు పరిమితులను '' ద్వారా సమర్థవంతంగా నిర్వహించవచ్చు క్యాచ్ () ” ఫంక్షన్.