Šajā rokasgrāmatā ir izskaidrota HTTP pieprasījumu veikšanas procedūra, izmantojot Node.js pieprasījumu moduli, aptverot tālāk norādītās sadaļas.
Kā izveidot HTTP pieprasījumus, izmantojot pieprasījumu moduli Node.js?
Node.js pieprasījuma moduļa alternatīvas
- 1. metode: HTTP pieprasījumu veikšana, izmantojot noklusējuma HTTP moduli
- 2. metode: HTTP pieprasījuma izveide, izmantojot ārējo Axios moduli
Kā izveidot HTTP pieprasījumus, izmantojot Node.js pieprasījuma moduli?
' pieprasījumu ” modulis ir visvienkāršākais modulis, kas palīdz nosūtīt vai izgūt HTTP pieprasījumus. Šis modulis ir pārāk vienkāršs un viegli saprotams, taču izstrādātājiem tas sniedz ļoti maz brīvības. Turklāt izstrādātājs nevar viegli mainīt tā pamata funkcionalitāti vai uzlabot tā nodrošinātās funkcijas.
Piezīme: Lai gan ' pieprasījumu ” ir labs modulis. Tomēr tā veidotāji nolēma pārtraukt darbu pie šī moduļa, un tā darbība tika pilnībā pārtraukta 2020. gada 11. februārī.
Taču, ja tomēr vēlies gūt priekšstatu par šīs “ pieprasījumu ” moduli, pēc tam veiciet tālāk minētās darbības.
1. darbība: “pieprasījuma” moduļa instalēšana un projekta Node.js inicializācija
Sāciet, inicializējot ' npm ” pakotnes vajadzīgajā direktorijā, lai izveidotu Node.js projektu, izpildot komandu:
npm init - unIzvade parāda, ka “npm” ir veiksmīgi inicializēts norādītajā direktorijā:
Pēc tam instalējiet nepieciešamo ' pieprasījumu ” moduli, izpildot komandu:
npm instalēšanas pieprasījumsIzvade parāda, ka instalēšana ir pabeigta, taču, tā kā šis modulis ir novecojis, novecojušo brīdinājumu nosūtīja “npm”:
2. darbība: fiktīva koda ievietošana
Izveidojiet ' .js ” tipa failu Node.js projekta direktorijā, tas ir fails, kurā programmas tiek ievietotas un izpildītas vēlāk. Pēc tam ievietojiet tālāk norādītās koda rindiņas, lai ilustrētu ' pieprasījumu ” modulis, kā parādīts zemāk:
konst reqObj = pieprasīt ( 'pieprasījums' )ļaujiet baseUrl = “https://jsonplaceholder.typicode.com/todos/6” ;
reqObj ( bāzes URL, ( jautājumi, saturs ) => {
ja ( jautājumiem ) konsole. žurnāls ( jautājumiem )
konsole. žurnāls ( saturu ) ;
} ) ;
Iepriekš minētā koda bloka skaidrojums ir šāds:
- Pirmkārt, ' pieprasījumu ' modulis ir importēts, un tā objekts tiek saglabāts jaunā mainīgā ar nosaukumu ' reqObj ”.
- Pēc tam kāda tiešsaistes JSON faila URL, kura saturs ir jāizgūst, tiek nodots kā vērtība “ baseUrl ” nosaukts mainīgais.
- Pēc tam ' reqObj ' mainīgais tiek izsaukts kā konstruktors, un ' baseUrl ” tiek nodots kā pirmais parametrs un atzvanīšanas funkcija kā otrais parametrs.
- Atzvanīšanas funkcijā “ ja ” paziņojums tiek izmantots, lai parādītu visas radušās kļūdas, un izgūtie dati tiek parādīti arī konsoles logā.
3. solis: izpilde
Lai izpildītu iepriekš minēto kodu, palaidiet saturošo failu ar nosaukumu ' proApp.js ” mūsu gadījumā, izmantojot komandu:
mezgls proApp. jsIzvade pēc izpildes parāda, ka norādītie dati ir izgūti un parādīti konsolē:
Node.js pieprasījuma moduļa alternatīvas
Sakarā ar “ pieprasījumu ” moduli, ir daudz jaunu ārējo moduļu, kurus var izmantot līdzīgas funkcionalitātes veikšanai. Šie alternatīvie moduļi ir norādīti zemāk:
Alternatīvas | Apraksts |
node-fetch | Tas ir solījums vai uz straumi balstīts modulis, kas programmā Node.js nodrošina metodi window.fetch(). |
http | ' http ” modulis ir noklusējuma modulis, ko nodrošina Node.js, un tas nodrošina vairākas metodes mijiedarbībai ar http serveriem, vienlaikus nodrošinot lielāku brīvību. |
axios | Pamatojoties tikai uz solījumiem un straumēm veikt HTTP pieprasījumus pārlūkprogrammā gan no servera, gan klienta puses. |
ieguva | Tā ir īpaši cilvēkiem draudzīga un visspēcīgākā HTTP pieprasījumu bibliotēka. |
superaģents | Pamatojoties uz ķēdes veidošanu un solījumiem, vienlaikus nodrošinot atbalstu daudziem augsta līmeņa HTTP klientiem. Tam ir arī zema mācīšanās līkne. |
liekts | Tas ir funkcionāls HTTP, kas atgriež asinhrona tipa funkciju. |
padarīt-atnest-notikt | Uzlabota forma node-fetch ” modulis. Tagad tas ietver arī “pieprasījumu apvienošanu”, “kešatmiņas atbalstu” un daudz ko citu. |
adata | Šis modulis ir skaidrākais un visprecīzākais modulis. To galvenokārt izmanto datu izgūšanai, nosūtot pieprasījumus trešo pušu avotiem. |
tiny-json-http | Minimālistisks HTTP klients, kas tiek izmantots JSON lietderīgās slodzes veikšanai. |
Tagad izpildīsim HTTP pieprasījumus, izmantojot dažus iepriekš apspriestos moduļus.
1. metode: HTTP pieprasījumu veikšana, izmantojot noklusējuma HTTP moduli
' http ” ir noklusējuma modulis, jo tas tiek automātiski instalēts projekta node.js inicializācijas laikā, izpildot komandu „ npm init ” vai “ npm init -y ”. Tā kā mēs jau esam izveidojuši projektu node.js, mēs izlaižam inicializācijas darbības, kas parādītas šī raksta sākumā, un tieši iedziļināmies http pieprasījumu izveidē, izmantojot “http” moduli.
Tālāk esošajā koda fragmentā serveris ir izveidots, un kā atbilde uz serveri tiek nosūtīts fiktīvais ziņojums:
konst httpObj = pieprasīt ( 'http' ) ;konst vietējaisServeris = httpObj. izveidotServeri ( ( pieprasījums, atbilde ) => {
atbildi. rakstīt ( 'Laipni lūdzam Twitter lapā' ) ;
atbildi. beigas ( ) ;
} ) ;
vietējaisServeris. klausies ( 8080 , ( ) => {
konsole. žurnāls ( 'serveris startēja ar porta numuru 8080.' ) ;
} ) ;
Iepriekš minētajā koda blokā:
- Pirmkārt, ' http ' modulis ir importēts pašreizējā failā un tā objekts tiek saglabāts jaunā mainīgā ar nosaukumu ' httpObj ”.
- Tālāk serveris ar nosaukumu “ vietējaisServeris ' tiek izveidots, izsaucot ' izveidotServeris() ” metodi un nododot atzvanīšanas funkciju kā tās parametru.
- Šīs funkcijas ietvaros izsauciet ' rakstīt () ” metodi un piešķiriet tai fiktīvu ziņojumu, kas tiek parādīts serverī. Tāpat aizveriet atbildes sesiju, izsaucot ' beigas () ”, nejaušo fiktīvo ziņojumu var ievietot arī metodes iekavās.
- Pēc tam ļaujiet šim serverim izpildīt vietējo resursdatoru, kura porta numurs ir “ 8080 ', izsaucot ' klausies () ” metode.
Izpildiet iepriekš minēto kodu, kurā ir fails, izpildot tālāk norādīto komandu:
mezgls < faila nosaukums. js >Ģenerētā izvade apstiprina, ka HTTP pieprasījumi ir izpildīti, izmantojot noklusējuma “ http ” modulis:
2. metode: HTTP pieprasījuma izveide, izmantojot ārējo Axios moduli
' axios ” ir vispopulārākais un visplašāk izmantotais modulis, kad runa ir par HTTP pieprasījumu izpildi reāllaika vidē. Lai izmantotu šo moduli, izstrādātājam tas vispirms ir jāinstalē, izpildot tālāk norādīto komandu:
npm instalēt axiosPēc komandas izpildes terminālis izskatās šādi:
Tagad apskatīsim piemēru, kurā “ GŪT ” HTTP pieprasījums tiks izmantots, lai izgūtu datus no nejaušas API. Pēc tam saņemtie dati tiek parādīti arī konsolē:
konst axiosObj = pieprasīt ( 'aksios' ) ;// JSON viettura API URL, lai atlasītu tikai daļu datu, kuru ID ir 5
konst apiUrl = “https://jsonplaceholder.typicode.com/todos/5” ;
//GET pieprasījuma inicializācija
axiosObj. gūt ( apiUrl )
. tad ( atbildi => {
konsole. žurnāls ( 'API atbildes statuss ir:' , atbilde. statusu ) ;
konsole. žurnāls ( Dati, kas saņemti no API kā atbilde uz pieprasījumu: , atbilde. datus ) ;
} )
. noķert ( kļūda => {
konsole. kļūda ( 'Ir radusies kļūda:' , kļūda ) ;
} ) ;
Iepriekš minētā koda bloka skaidrojums ir norādīts zemāk:
- Vispirms importējiet ' axios ' bibliotēku un saglabājiet tās gadījumu mainīgajā ar nosaukumu ' axiosObj ”, kas darbojas kā “axios” bibliotēkas objekts.
- Pēc tam izveidojiet mainīgo ' apiUrl ” un saglabājiet tās API URL, no kuras ir jāizgūst dati. Mūsu gadījumā URL ir ' https://jsonplaceholder.typicode.com/todos/5 ', jo mēs vēlamies izgūt datus, kuru ID ir ' 5 ”.
- Tagad, izmantojot ' axiosObj 'izsaukt' gūt() ' metodi un nododiet ' appURL ” mainīgais šīs metodes iekavās.
- Pievienojiet ' tad () ' metode ar ' gūt() ' metodi un izveidojiet anonīmu bultiņas funkciju, kas satur vienu parametru ' atbildi ”.
- Šis ' atbildi ” darbojas kā objekts, kas satur vērtības vai datus, kas atgriezti, atbildot uz pieprasījumu, izmantojot gūt() ” metode.
- Ar šīs ' atbildi ' objektu, izgūstiet pieprasījuma statusu un saturu, pievienojot ' statusu ' un ' datus ” atslēgvārdi blakus tai.
- Visbeidzot pievienojiet ' noķert () ” metode, kas parāda kļūdas, ja tādas radušās programmas izpildes laikā.
Tagad apkopojiet iepriekš minēto kodu Node.js vidē, izmantojot tālāk norādīto komandu terminālī:
mezgls < faila nosaukums >Parādītā izvade parāda, ka pieprasītie dati ir izgūti no norādītā avota kā atbilde un parādīti konsoles logā:
Tas viss attiecas uz HTTP pieprasījumu veikšanu, izmantojot Node.js pieprasījumu moduli, un īsu tā alternatīvu pārskatu.
Secinājums
Lai veiktu HTTP pieprasījumu, izmantojot “ pieprasījumu ” modulis, nepieciešamais URL, no kura tiks veikta ienešana. Pēc tam tiek izveidots “pieprasījuma” moduļa gadījums un atlasītais URL, kuram ir jārealizē HTTP pieprasījums, tiek nodots kā pirmais parametrs. Nepieciešamā atzvanīšanas funkcija tiek izmantota arī, lai pārbaudītu, vai nav radušās kļūdas, un izgūtu HTTP pieprasījuma saturu vai atbildi. Šajā rokasgrāmatā ir izskaidrots HTTP pieprasījumu veikšanas process, izmantojot pieprasījuma moduli.