Kuinka ratkaista 'Moduulia ei löydy' -virhe Node.js:n avulla?

Kuinka Ratkaista Moduulia Ei Loydy Virhe Node Js N Avulla



Muiden ohjelmointikielten tavoin Node.js:n ei tarvitse pilkkoa sovelluksen lähdekoodia pieniksi paloiksi. Se kirjoittaa kaiken lähdekoodin '.js'-tiedostoon, eikä tulkki aiheuta ongelmia. Erittäin monimutkaista Node.js-sovellusta luotaessa on kuitenkin suositeltavaa jakaa lähdekoodi pienempiin moduuleihin ja yhdistää ne sitten yhtenäiseksi sovellukseksi.

Quick Outline

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: 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. js

Alla 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 mysql

Tulos näyttää 'mysql'-moduulin onnistuneen asennuksen nykyisessä Node.js-projektissa:

Suorita nyt '.js'-tiedosto uudelleen:

solmuindeksi. js

Voidaan 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. js

Voidaan 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. js

Voidaan 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. js

Lä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. js

Nyt 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. js

Tulos 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. js

Nyt 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. js

Tulos 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. js

Voidaan 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. js

Tä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. js

Tä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 tiedosto

ls // 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.