Quick Outline
- Mikä on Node.js:n 'moduuli'?
- Kuinka ratkaista 'Moduulia ei löydy' -virhe Node.js:n avulla?
- Johtopäätös
Mikä on Node.js:n moduuli?
Node.js:ssa ' moduuli ” vastaa kirjastoa, joka muodostaa yhteyden sovellukseen sen kontekstin perusteella. Sen avulla kehittäjät voivat käyttää kapseloitua koodia uudelleen aina, kun sitä tarvitaan. Se on luokiteltu kolmeen pääluokkaan: 'sisäänrakennettu', 'paikallinen' ja 'kolmannen osapuolen' moduuli. Nämä moduulit sisältävät lisäksi laajan valikoiman menetelmiä ja ominaisuuksia, jotka suorittavat toimintojensa mukaan määriteltyjä toimintoja.
Kuinka ratkaista 'Moduulia ei löydy' -virhe Node.js:n avulla?
Tässä osiossa luetellaan kaikki mahdolliset syyt, jotka aiheuttavat 'Moduulia ei löydy' -virheen, ja tarjotaan myös toimivat ratkaisut sen ratkaisemiseksi:
- Syy 1: Moduulia ei ole asennettu
- Ratkaisu: Asenna vaadittu moduuli
- Syy 2: Väärä moduulipolku
- Ratkaisu: Määritä oikea moduulipolku
- Syy 3: Väärä moduulin nimi (kirjainkoolla on merkitystä)
- Ratkaisu: Kirjoita oikea moduulin nimi
- Syy 4: Väärä tiedostopääte
- Ratkaisu: Kirjoita oikea tiedostopääte
- Syy 5: Moduulin yleinen asennus
- Ratkaisu: Asenna moduuli paikallisesti
- Syy 6: Syötetiedosto puuttuu
- Ratkaisu: Asenna vaadittu moduuli uudelleen
- Mitä tehdä, jos 'Moduulia ei löydy' -virhe jatkuu?
- Ratkaisu: Poista 'node_modules'-kansio ja 'package-lock.json'-tiedosto
Syy 1: Vaadittua moduulia ei ole asennettu
Yleisin syy ' Moduulia ei löydy 'Virhe on, että vaadittu' kolmannen osapuolen moduulia ei ole asennettu ' nykyisessä Node.js-projektissa. Oletetaan, että tuomme kolmannen osapuolen 'mysql'-moduulin Node.js-sovellukseen tällä tavalla:
konst mysql = vaatia ( 'mysql' ) ;
Yllä olevassa komennossa ' vaatia() ' -menetelmä sisältää 'mysql'-moduulin nykyiseen node.js-sovellukseen.
Suorita '.js'-tiedosto:
solmuindeksi. jsAlla oleva tulos luo käsitellyn virheen, koska 'mysql'-moduulia ei ole asennettu nykyiseen Node.js-projektiin:
Ratkaisu: Asenna vaadittu moduuli
Ratkaisu edellä käsiteltyyn virheeseen on asentaa tarvittava moduuli oikein ' npm / lanka ' paketinhallinta. Tässä skenaariossa vaadittu 'mysql'-moduuli asennetaan 'npm'-asennuskomennolla:
npm asenna mysqlTulos näyttää 'mysql'-moduulin onnistuneen asennuksen nykyisessä Node.js-projektissa:
Suorita nyt '.js'-tiedosto uudelleen:
solmuindeksi. jsVoidaan analysoida, että yllä oleva komento suoritettiin onnistuneesti luomatta 'Moduulia ei löydy' -virhettä:
Syy 2: Väärä moduulipolku
Toinen syy ' Moduulia ei löydy 'virhe on' väärä moduulipolku ”. Se tapahtuu yleensä, kun käyttäjä tuo paikallisen moduulin sen suhteellisen polun kautta. Oletetaan, että käyttäjä luo mukautetun moduulin tiettyyn kansioon ja tuo sen Node.js-sovellukseen. Ennen kuin teet tämän, varmista, että määritetty polku on oikea, muuten käsitelty virhe kohdataan.
Esimerkiksi paikallinen/käyttäjän määrittämä moduuli nimeltä ' myModule ' on './custom-modules'-kansiossa:
Käyttäjä tuo yllä korostetun 'myModulen' nykyiseen Node.js-sovellukseen sen suhteellisen polun kautta:
konst Kieli (kielet = vaatia ( './myModule' ) ;Suorita '.js'-tiedosto:
solmuindeksi. jsVoidaan nähdä, että 'myModule' -moduulin väärän polun vuoksi syntyy 'Moduulia ei löydy' -virhe:
Ratkaisu: Määritä oikea moduulipolku
Ratkaisu edellä käsiteltyyn virheeseen on määrittää oikea tai tarkka polku moduulille, jossa se sijaitsee. Tässä välitimme oikean polun 'myModule' ratkaistaksemme 'Moduulia ei löydy' -virheen:
konst Kieli (kielet = vaatia ( './custom-modules/myModule' ) ;Aloita '.js'-tiedosto:
solmuindeksi. jsVoidaan havaita, että alla oleva tulos ei näytä havaittua virhettä, koska tuodun moduulin määritetty polku on korjattu:
Syy 3: Väärä moduulin nimi (kirjainkoolla on merkitystä)
Moduulit ovat ' kirjainkoolla ' Linuxissa ja macOS:ssä, esimerkiksi jos moduulin nimi on asennettu isoilla kirjaimilla ja käyttäjä tuo sen pienillä kirjaimilla, ' Moduulia ei löydy ' -virhe syntyy. Tämä johtuu siitä, että moduulin todellinen nimi ja tuontikäsky eivät vastaa toisiaan.
Täällä asennettu 'csvtojson'-moduuli tuodaan 'isoilla kirjaimilla' Node.js-sovellukseen:
konst csvtojson = vaatia ( 'CSVTOJSON' ) ;Suorita '.js'-tiedosto:
solmuindeksi. jsLähtö tuottaa 'Moduulia ei löydy' -virheen väärän moduulin nimen vuoksi:
Ratkaisu: Kirjoita oikea moduulin nimi
Ratkaisu yllä olevaan virheeseen on määrittää tuodun moduulin oikea kirjainkoko (alempi tai ylempi) käyttämällä ' vaatia() ”menetelmä. Tässä skenaariossa 'csvtojson'-moduuli määritetään 'require()'-metodissa sen oikeassa tapauksessa:
konst csvtojson = vaatia ( 'csvtojson' ) ;Suorita '.js'-tiedosto uudelleen:
solmuindeksi. jsNyt yllä oleva komento ei luonut 'Moduulia ei löydy' -virhettä, koska tuotu paketin tapaus on sama kuin sen todellinen nimi:
Syy 4: Väärä tiedostopääte
' Moduulia ei löydy ' virhe voi johtua myös ' väärä tiedostopääte ”. Samanlainen kuin väärä tiedostopolku, se tapahtuu paikallisten moduulien tapauksessa. Esimerkiksi paikallinen moduuli luodaan '.json'-tiedostoon ja määritetään Node.js-sovelluksessa '.js'-tunnisteella, jolloin yllä oleva erityinen virhe luodaan:
Tässä skenaariossa ' myModule.js 'Väärä moduulipolku' -kohdassa näkyvä '' on otettu mallitiedostoksi. Sitä käytetään nykyisessä Node.js-sovelluksessa määrittämällä sen laajennus '.json' seuraavasti:
konst Kieli (kielet = vaatia ( './custom-modules/myModule.json' ) ;Suorita '.js'-tiedosto:
solmuindeksi. jsTulos tuottaa 'Moduulia ei löydy' -virheen, koska 'myModule' -tiedoston tiedostopääte on väärä:
Ratkaisu: Kirjoita oikea tiedostopääte
Ratkaisu käsiteltyyn virheeseen on kirjoittaa oikea tiedostopääte, jossa paikallinen moduuli luodaan. Määritimme esimerkiksi oikean tiedostotunnisteen 'myModule.js'-tiedostolle 'Moduulia ei löydy' -virheen ratkaisemiseksi:
konst Kieli (kielet = vaatia ( './custom-modules/myModule.js' ) ;Suorita '.js'-tiedosto:
solmuindeksi. jsNyt yllä oleva komento on suoritettu onnistuneesti näyttämättä 'Moduulia ei löydy' -virhettä:
Syy 5: Moduulin yleinen asennus
Solmumoduulit voidaan asentaa paikallisesti (tietylle projektille) tai globaalisti (kaikkiin projekteihin). Linuxissa , Jos vaadittu moduuli asennetaan maailmanlaajuisesti käyttöjärjestelmään ja sitä käytetään tietyssä projektissa ilman paikallista asennusta, ' Moduulia ei löydy ' virhe syntyy.
Esimerkiksi ' mongodb ' -moduuli asennetaan maailmanlaajuisesti Linux-käyttöjärjestelmään ' sudo npm asennus -g mongodb ”-komento ja sitä käytetään paikallisesti tietyssä solmuprojektissa:
konst mongodb = vaatia ( 'mongodb' )Suorita '.js'-tiedosto:
solmuindeksi. jsTulos tuottaa käsitellyn virheen, koska 'mongodb' ei ole asennettu paikallisesti nykyiseen Node-projektiin:
Ratkaisu: Asenna moduuli paikallisesti
Ratkaisu havaittuun virheeseen on asentaa moduuli paikallisesti tiettyä Node.js-projektia varten Linux-pohjaiseen käyttöjärjestelmään.
Täällä ' mongodb ”-moduuli asennetaan paikallisesti nykyiseen projektiin ”npm”-asennuskomennon avulla:
npm asenna mongodb
Kun 'mongodb':n paikallinen asennus on valmis, tuo se '.js'-tiedostoon ja suorita se:
solmuindeksi. jsVoidaan nähdä, että 'Moduulia ei löydy' -virhe on korjattu asentamalla 'mongodb'-moduuli paikallisesti nykyiseen Node.js-projektiin:
Windowsissa moduulin yleinen ja paikallinen asennus ei tuota 'Moduulia ei löydy' -virhettä.
Syy 6: Syötetiedosto puuttuu
' Moduulia ei löydy ' -virhe voi myös luoda, koska pääsyöttötiedosto puuttuu moduulin 'package.json'-tiedostosta. Kunkin moduulin pääsyöttötiedosto on oletusarvoisesti 'index.js'-tiedosto.
Oletetaan, että jos käyttäjä poistaa sen vahingossa, syntyy yllä oleva virhe. Tämä johtuu siitä, että kun tuodaan määritettyä moduulia ' vaatia() ” -menetelmä siirtyy kyseisen moduulin kansioon ja etsii aloituspistettä. Jos sitä ei ole, se ei voi tuoda kyseistä moduulia Node.js-sovellukseen.
Tarvittavan moduulin syöttötiedosto “index.js” on sen kansiorakenteessa. Alla oleva katkelma näyttää 'mysql'-moduulin syöttötiedoston:
Nyt edellä korostettu 'index.js'-tiedosto poistetaan 'mysql'-kansiosta ja tuodaan sitten 'mysql'-moduuli Node.js-sovellukseen:
konst mysql = vaatia ( 'mysql' )Suorita '.js'-tiedosto:
solmuindeksi. jsTässä tulos tuottaa 'Moduulia ei löydy' -virheen, koska 'mysql'-moduulin syöttötiedosto puuttuu:
Ratkaisu: Asenna vaadittu moduuli uudelleen
Ratkaisu yllä havaittuun virheeseen on poistaa ' solmu_moduulit ” hakemistoon ja asenna tarvittava moduuli uudelleen. Täällä 'mysql'-moduuli asennetaan uudelleen sen jälkeen, kun 'node_modules' -hakemisto on poistettu:
npm asenna mysql
Kun 'mysql' on asennettu onnistuneesti, uusi ' solmu_moduulit ' hakemisto luodaan automaattisesti, ja se sisältää 'mysql'-moduulin kansiorakenteen, jossa 'index.js' on:
Suorita nyt '.js'-tiedosto uudelleen:
solmuindeksi. jsTässä tulos ei tuota 'Moduulia ei löydy' -virhettä, koska 'mysql'-moduulissa on 'index.js'-niminen syöttötiedosto:
Mitä tehdä, jos 'Moduulia ei löydy' -virhe jatkuu?
Jos ' Moduulia ei löydy ' -virhe jatkuu sen jälkeen, kun se on ratkaistu jollakin yllä olevista ratkaisuista ja poista sitten ' solmu_moduulit ”-kansioon. Node_modules -kansio luodaan automaattisesti, kun kolmannen osapuolen moduuli asennetaan. Se sisältää kaikki kolmannen osapuolen paketit, joista Node.js-projekti on riippuvainen.
Lisäksi ' package-lock.json '-tiedosto luo myös automaattisesti, kun paketti asennetaan 'npm' kanssa. Se pitää kirjaa riippuvuuksista sekä aliriippuvuuksista, joista paketti on riippuvainen, sekä niiden versiot. Jos paketti on asennettu 'langalla', tämä tiedostonimi on ' lanka.lukko ”.
Ratkaisu: Poista 'node_modules'-kansio ja 'package-lock.json'-tiedosto
Ratkaisu havaittuun virheeseen on poistaa 'node_modules'-kansio ja 'package-lock.json/yarn.lock'-tiedosto ja asentaa vaadittu paketti uudelleen.
Linuxissa , yllämainittu kansio ja tiedostot voidaan poistaa alla olevan ' rm (poista)' komento:
rm - rf node_modules -paketti - Lukko. json //Poista kansio ja tiedostols // Näytä tiedostot ja hakemistot
Yllä olevassa komennossa ' -r ' lippu poistaa määritetyn kansion ' rekursiivisesti ' mukaan lukien kaikki sen alihakemistot ja ' f ' lippu käskee tulkkia suorittamaan tämän tehtävän ' väkisin ':
Tulos osoittaa, että 'node_modules'-kansio ja 'package-lock.json/yarn.lock'-tiedosto on poistettu kokonaan nykyisestä Node.js-projektista:
Windowsissa , käyttäjä voi poistaa 'node_modules'-kansion ja 'package-lock.json/yarn.lock'-tiedoston yksinkertaisesti painamalla ' poistaa ' -näppäintä tai käyttämällä pudotusvalikon 'poista' -vaihtoehtoa.
Siinä kaikki Node.js:n 'Moduulia ei löydy' -virheen ratkaisemisesta.
Johtopäätös
ratkaistaksesi ' Moduulia ei löydy ' virhe, 'asenna vaadittu moduuli', 'määritä sen oikea polku', 'kirjoita oikea kirjainkoko 'require()' -menetelmään ja myös 'kirjoita oikea tiedostopääte'. Lisäksi Node.js-projektissa voidaan ratkaista 'asentamaan moduuli paikallisesti'. Jos erityinen virhe jatkuu, poista 'node_modules'-kansio, 'package-lock.json'-tiedosto ja asenna sitten vaadittu moduuli uudelleen 'npm/yarn' -sovelluksella. Tässä viestissä on käsitelty kaikkia mahdollisia syitä sekä niiden ratkaisua 'Moduulia ei löydy' -virheen ratkaisemiseksi Node.js:n avulla.