Šiame vadove paaiškinama HTTP užklausų teikimo naudojant Node.js užklausų modulį procedūra, apimant šiuos skyrius:
Kaip pateikti HTTP užklausas naudojant Node.js užklausų modulį?
Node.js užklausų modulio alternatyvos
- 1 būdas: HTTP užklausų teikimas naudojant numatytąjį HTTP modulį
- 2 būdas: HTTP užklausos pateikimas naudojant išorinį „Axios“ modulį
Kaip pateikti HTTP užklausas naudojant Node.js užklausų modulį?
„ prašymas “ modulis yra pats paprasčiausias modulis, padedantis siųsti arba gauti HTTP užklausas. Šis modulis yra per paprastas ir lengvai suprantamas, tačiau kūrėjams suteikia labai mažai laisvės. Be to, kūrėjas negali lengvai pakeisti savo pagrindinių funkcijų ar patobulinti teikiamų funkcijų.
Pastaba: Nors ' prašymas “ yra geras modulis. Tačiau jo kūrėjai nusprendė nebedirbti su šiuo moduliu, o 2020 m. vasario 11 d. jis visiškai nebenaudojamas.
Tačiau, jei vis tiek norite sužinoti apie šios programos įgyvendinimą prašymas “ modulį, tada atlikite toliau nurodytus veiksmus.
1 veiksmas: „užklausos“ modulio įdiegimas ir Node.js projekto inicijavimas
Pradėkite inicijuodami „ npm “ paketus norimame kataloge, kad sukurtumėte Node.js projektą paleisdami komandą:
npm init - irIšvestis rodo, kad „npm“ buvo sėkmingai inicijuotas pateiktame kataloge:
Tada įdiekite reikiamą ' prašymas “ modulį, vykdydami komandą:
npm diegimo užklausaIšvestis rodo, kad diegimas buvo baigtas, bet kadangi šis modulis yra pasenęs, todėl „npm“ atsiuntė pasenusio įspėjimo:
2 veiksmas: fiktyvaus kodo įterpimas
Sukurti ' .js ” tipo failą Node.js projekto kataloge, tai failas, į kurį vėliau įterpiamos ir vykdomos programos. Tada įterpkite toliau pateiktas kodo eilutes, kad parodytumėte praktinį „ prašymas “ modulis, kaip parodyta žemiau:
konst reqObj = reikalauti ( 'prašymas' )tegul baseUrl = „https://jsonplaceholder.typicode.com/todos/6“ ;
reqObj ( bazinis URL, ( klausimai, turinys ) => {
jeigu ( Problemos ) konsolė. žurnalas ( Problemos )
konsolė. žurnalas ( turinys ) ;
} ) ;
Aukščiau pateikto kodo bloko paaiškinimas yra toks:
- Pirma, „ prašymas ' modulis buvo importuotas ir jo objektas yra saugomas naujame kintamajame pavadinimu ' reqObj “.
- Tada kai kurių internetinių JSON failų, kurių turinį reikia nuskaityti, URL perduodamas kaip „ baseUrl “ pavadintas kintamasis.
- Tada ' reqObj ' kintamasis iškviečiamas kaip konstruktorius, o ' baseUrl “ perduodamas kaip pirmasis parametras, o atgalinio skambinimo funkcija – kaip antrasis parametras.
- Atskambinimo funkcijos viduje yra „ jeigu “ teiginys naudojamas visoms įvykusioms klaidoms rodyti, o gauti duomenys taip pat rodomi konsolės lange.
3 žingsnis: vykdymas
Norėdami vykdyti aukščiau pateiktą kodą, paleiskite failą, kuriame yra ' proApp.js “, mūsų atveju naudojant komandą:
mazgas proApp. jsIšvestis po vykdymo rodo, kad nurodyti duomenys buvo gauti ir rodomi konsolėje:
Node.js užklausų modulio alternatyvos
Dėl nusidėvėjimo „ prašymas “ modulis, yra daug naujų išorinių modulių, kurie gali būti naudojami panašioms funkcijoms atlikti. Šie alternatyvūs moduliai nurodyti žemiau:
Alternatyvos | apibūdinimas |
mazgo gavimas | Tai pažadu arba srautu pagrįstas modulis, kuris į Node.js atneša window.fetch() metodą. |
http | „ http ” modulis yra numatytasis modulis, kurį teikia Node.js, ir jame pateikiami keli būdai sąveikauti su http serveriais ir suteikiama daugiau laisvės. |
aksios | Grynai pagrįsta pažadais ir srautais atlikti HTTP užklausas per naršyklę tiek iš serverio, tiek iš kliento pusės. |
gavo | Tai itin patogi žmogui ir pati galingiausia HTTP užklausų biblioteka. |
superagentas | Remiantis grandinėmis ir pažadais, kartu teikiant palaikymą daugeliui aukšto lygio HTTP klientų. Jis taip pat turi žemą mokymosi kreivę. |
sulenktas | Tai funkcinis HTTP, kuris grąžina asinchroninio tipo funkciją. |
padaryti-atnešti-įvykti | Patobulinta forma mazgo gavimas “ modulis. Dabar tai apima „užklausų telkimą“, „talpyklos palaikymą“ ir daug daugiau. |
adata | Šis modulis yra aiškiausias ir labiausiai į priekį nukreiptas modulis. Jis dažniausiai naudojamas duomenims gauti siunčiant užklausas trečiųjų šalių šaltiniams. |
tiny-json-http | Minimalistinis HTTP klientas, naudojamas JSON apkrovoms atlikti. |
Dabar atlikime HTTP užklausas naudodamiesi kai kuriais aukščiau aptartais moduliais.
1 būdas: HTTP užklausų teikimas naudojant numatytąjį HTTP modulį
„ http “ yra numatytasis modulis, nes jis automatiškai įdiegiamas inicijuojant node.js projektą vykdant komandą „ npm init “ arba „ npm init -y “. Kadangi jau sukūrėme projektą node.js, praleidžiame inicijavimo veiksmus, parodytus šio straipsnio pradžioje, ir neriame tiesiai į http užklausų kūrimą naudojant „http“ modulį.
Žemiau pateiktame kodo fragmente serveris buvo sukurtas ir kaip atsakas į serverį siunčiamas netikras pranešimas:
konst httpObj = reikalauti ( 'http' ) ;konst vietinis serveris = httpObj. sukurti serverį ( ( prašymas, atsakymas ) => {
atsakymą. rašyti ( „Sveiki atvykę į Twitter puslapį“ ) ;
atsakymą. galas ( ) ;
} ) ;
vietinis serveris. klausyk ( 8080 , ( ) => {
konsolė. žurnalas ( 'serveris paleistas prievado numeriu 8080.' ) ;
} ) ;
Aukščiau pateiktame kodo bloke:
- Pirma, „ http ' modulis buvo importuotas į dabartinį failą ir jo objektas yra saugomas naujame kintamajame pavadinimu ' httpObj “.
- Tada serveris pavadintas „ vietinis serveris “ yra sukurtas naudojant „ CreateServer() “ metodą ir kaip jo parametrą perduoti atgalinio skambinimo funkciją.
- Šioje funkcijoje iškvieskite „ rašyti () “ metodą ir priskirkite jam netikrą pranešimą, kuris bus rodomas serveryje. Taip pat uždarykite atsakymo seansą iškviesdami „ galas() “, atsitiktinis netikras pranešimas taip pat gali būti įterptas metodo skliausteliuose.
- Po to nustatykite, kad šis serveris veiktų per vietinį pagrindinį kompiuterį, kurio prievado numeris yra ' 8080 “, pasinaudojant „ klausyk () “ metodas.
Vykdykite aukščiau pateiktą kodą, kuriame yra failas, vykdydami toliau pateiktą komandą:
mazgas < failo pavadinimas. js >Sugeneruota išvestis patvirtina, kad HTTP užklausos buvo įvykdytos naudojant numatytąjį ' http “ modulis:
2 būdas: HTTP užklausos pateikimas naudojant išorinį „Axios“ modulį
„ aksios “ yra populiariausias ir plačiausiai naudojamas modulis, kai reikia atlikti HTTP užklausas realiuoju laiku. Norėdami naudoti šį modulį, kūrėjas pirmiausia turi jį įdiegti vykdydamas toliau pateiktą komandą:
npm įdiegti axiosĮvykdžius komandą, terminalas atrodo taip:
Dabar pažvelkime į pavyzdį, kuriame „ GAUTI HTTP užklausa bus naudojama norint gauti duomenis iš atsitiktinės API. Tada gauti duomenys taip pat rodomi konsolėje:
konst axiosObj = reikalauti ( 'aksios' ) ;// JSON rezervuotos vietos API URL Norėdami pasirinkti tik dalį duomenų, kurių ID yra 5
konst apiUrl = „https://jsonplaceholder.typicode.com/todos/5“ ;
//GET užklausos inicijavimas
axiosObj. gauti ( apiUrl )
. tada ( atsakymą => {
konsolė. žurnalas ( „API atsakymo būsena yra:“ , atsakymas. statusą ) ;
konsolė. žurnalas ( „Duomenys, gauti iš API kaip atsakas į užklausą:“ , atsakymas. duomenis ) ;
} )
. sugauti ( klaida => {
konsolė. klaida ( „Įvyko klaida:“ , klaida ) ;
} ) ;
Aukščiau pateikto kodo bloko paaiškinimas pateikiamas toliau:
- Pirmiausia importuokite „ aksios “ biblioteką ir išsaugokite jos egzempliorių kintamajame pavadinimu „ axiosObj “, kuri veikia kaip „axios“ bibliotekos objektas.
- Tada sukurkite kintamąjį ' apiUrl “ ir išsaugokite API, iš kurios reikia gauti duomenis, URL. Mūsų atveju URL yra ' https://jsonplaceholder.typicode.com/todos/5 “, nes norime gauti duomenis, kurių ID yra „ 5 “.
- Dabar, padedant „ axiosObj “ iškviesti “ gauti () “ metodą ir pereikite „ appURL “ kintamasis šio metodo skliausteliuose.
- Pridėkite ' tada () “ metodas su „ gauti () “ metodą ir sukurkite anoniminę rodyklės funkciją, kurioje yra vienas parametras „ atsakymą “.
- Šis ' atsakymą “ veikia kaip objektas, kuriame yra reikšmės arba duomenys, grąžinti atsakant į užklausą per „ gauti () “ metodas.
- Su šia pagalba ' atsakymą “ objektą, nuskaitykite užklausos būseną ir turinį pridėdami „ statusą “ ir „ duomenis “ šalia jo esantys raktiniai žodžiai.
- Galiausiai pridėkite „ sugauti () “ metodas, rodantis klaidas, jei tokių įvyko vykdant programą.
Dabar sukompiliuokite aukščiau pateiktą kodą Node.js aplinkoje naudodami toliau pateiktą komandą terminale:
mazgas < failo pavadinimas >Rodoma išvestis rodo, kad prašomi duomenys buvo gauti iš pateikto šaltinio kaip atsakymas ir rodomi konsolės lange:
Tai viskas apie HTTP užklausų teikimą naudojant Node.js užklausų modulį ir greitą jo alternatyvų apžvalgą.
Išvada
Norėdami pateikti HTTP užklausą naudodami „ prašymas “ modulis, reikalingas URL, iš kurio bus atliktas gavimas. Tada sukuriamas „užklausos“ modulio egzempliorius, o pasirinktas URL, kuriam reikia įgyvendinti HTTP užklausą, perduodamas kaip pirmasis parametras. Reikalinga atgalinio skambinimo funkcija taip pat naudojama norint patikrinti, ar nėra klaidų, ir gauti HTTP užklausos turinį arba atsakymą. Šiame vadove paaiškintas HTTP užklausų teikimo procesas naudojant užklausų modulį.