Hvordan løse 'Kan ikke finne modul'-feil ved å bruke Node.js?

Hvordan Lose Kan Ikke Finne Modul Feil Ved A Bruke Node Js



Som andre programmeringsspråk trenger ikke Node.js å ​​dele opp applikasjonens kildekode i små biter. Den skriver all kildekoden inn i en '.js'-fil og tolken forårsaker ingen problemer. Men mens du lager en veldig kompleks Node.js-applikasjon, anbefales det å dele kildekoden i mindre moduler og deretter kombinere dem til en sammenhengende applikasjon.

Rask oversikt

Hva er en modul i Node.js?

I Node.js er ' modul ” tilsvarer et bibliotek som bygger en forbindelse med en applikasjon basert på konteksten. Det lar utviklerne gjenbruke den innkapslede koden når det er nødvendig. Det er kategorisert i tre hovedkategorier: 'innebygde', 'lokale' og 'tredjeparts' moduler. Disse modulene inneholder videre et bredt spekter av metoder og egenskaper som utfører operasjoner spesifisert i henhold til deres funksjonalitet.







Hvordan løser du feilen 'Kan ikke finne modul' ved å bruke Node.js?

Denne delen tar opp alle mulige årsaker som genererer feilen 'Kan ikke finne modul' og gir også brukbare løsninger for å løse det:



Årsak 1: Nødvendig modul ikke installert

Den vanligste årsaken til ' Finner ikke modulen 'Feilen er at den nødvendige' tredjepartsmodul er ikke installert ” i det nåværende Node.js-prosjektet. Anta at vi importerer tredjeparts 'mysql'-modulen i Node.js-applikasjonen på denne måten:



konst mysql = krever ( 'mysql' ) ;

I kommandoen ovenfor, ' krever() ”-metoden inkluderer “mysql”-modulen til gjeldende node.js-applikasjon.





Kjør '.js'-filen:

nodeindeks. js

Utdataene nedenfor genererer den omtalte feilen fordi 'mysql'-modulen ikke er installert i det gjeldende Node.js-prosjektet:



Løsning: Installer den nødvendige modulen

Løsningen på den ovenfor diskuterte feilen er å installere den nødvendige modulen riktig ved hjelp av ' npm / garn ” pakkeforvalter. For dette scenariet installeres den nødvendige 'mysql'-modulen med installasjonskommandoen 'npm':

npm installer mysql

Utdataene viser den vellykkede installasjonen av 'mysql'-modulen i det nåværende Node.js-prosjektet:

Kjør nå '.js'-filen igjen:

nodeindeks. js

Det kan analyseres at kommandoen ovenfor ble utført vellykket uten å generere feilen 'Kan ikke finne modul':

Årsak 2: Feil modulbane

En annen grunn til ' Finner ikke modulen ' feilen er ' feil modulbane '. Det skjer vanligvis når brukeren importerer en lokal modul gjennom dens relative bane. Anta at brukeren oppretter en tilpasset modul i den spesifikke mappen og importerer den til Node.js-applikasjonen. Før du gjør dette, sørg for at den angitte banen er riktig, ellers vil den omtalte feilen oppstå.

For eksempel en lokal/brukerdefinert modul kalt ' minModul ” finnes i mappen “./custom-modules”:

Brukeren importerer den ovenfor uthevede 'myModule' til gjeldende Node.js-applikasjon gjennom dens relative bane:

konst språk = krever ( './myModule' ) ;

Kjør '.js'-filen:

nodeindeks. js

Det kan sees at på grunn av feil banen til 'myModule' genereres feilen 'Kan ikke finne modul':

Løsning: Angi riktig modulbane

Løsningen på den ovenfor diskuterte feilen er å spesifisere den korrekte eller nøyaktige banen til modulen der den er plassert. Her passerte vi den riktige banen 'myModule' for å løse feilen 'Kan ikke finne modul':

konst språk = krever ( './custom-modules/myModule' ) ;

Start '.js'-filen:

nodeindeks. js

Det kan observeres at utdataene nedenfor ikke viser den oppståtte feilen fordi den angitte banen til den importerte modulen er korrigert:

Årsak 3: Feil modulnavn (skiller mellom store og små bokstaver)

Modulene er ' skiller mellom store og små bokstaver ' i Linux og macOS, for eksempel hvis modulnavnet er installert med store bokstaver og brukeren importerer det til små bokstaver, deretter ' Finner ikke modulen ' feil vil bli generert. Dette er fordi det er et misforhold mellom det faktiske modulnavnet og importsetningen.

Her importeres den installerte 'csvtojson'-modulen med 'store bokstaver' til Node.js-applikasjonen:

konst csvtojson = krever ( 'CSVTOJSON' ) ;

Kjør '.js'-filen:

nodeindeks. js

Utgangen genererer feilen 'Kan ikke finne modul' på grunn av feil modulnavn:

Løsning: Skriv inn riktig modulnavn

Løsningen på feilen ovenfor er å spesifisere riktig sak (nedre eller øvre) for den importerte modulen mens du bruker ' krever() 'metoden. I dette scenariet er 'csvtojson'-modulen spesifisert i 'require()'-metoden i riktig tilfelle:

konst csvtojson = krever ( 'csvtojson' ) ;

Kjør '.js'-filen på nytt:

nodeindeks. js

Nå genererte ikke kommandoen ovenfor feilen 'Kan ikke finne modul' fordi den importerte pakkesaken er den samme som dens faktiske navn:

Årsak 4: Feil filtype

« Finner ikke modulen ' feil kan også oppstå på grunn av ' feil filtype '. I likhet med feil filbane skjer det i tilfellet med lokale moduler. For eksempel opprettes en lokal modul i '.json'-filen og spesifiseres i Node.js-applikasjonen med utvidelsen '.js', så genereres den spesielle feilen ovenfor:

I dette scenariet vil ' myModule.js ' vist i ' Feil modulbane '-årsaken tas som en prøvefil. Den er tilgjengelig i den gjeldende Node.js-applikasjonen ved å spesifisere utvidelsen '.json' slik:

konst språk = krever ( './custom-modules/myModule.json' ) ;

Kjør '.js'-filen:

nodeindeks. js

Utdataene genererer feilen 'Kan ikke finne modul' på grunn av feil filtype for 'myModule'-filen:

Løsning: Skriv inn riktig filtype

Løsningen på den omtalte feilen er å skrive inn riktig filtype som den lokale modulen er opprettet i. For eksempel spesifiserte vi riktig filtype for 'myModule.js'-filen for å løse feilen 'Kan ikke finne modul':

konst språk = krever ( './custom-modules/myModule.js' ) ;

Kjør '.js'-filen:

nodeindeks. js

Nå har kommandoen ovenfor blitt utført uten å vise feilen 'Kan ikke finne modul':

Årsak 5: Global installasjon av en modul

Nodemodulene kan installeres lokalt (for et spesifikt prosjekt) eller globalt (for alle prosjekter). I Linux , Hvis den nødvendige modulen er installert globalt i et operativsystem og er tilgjengelig i et spesifikt prosjekt uten den lokale installasjonen, vil ' Finner ikke modulen '-feil genereres.

For eksempel, ' mongodb '-modulen er globalt installert i Linux-operativsystemet via ' sudo npm installer -g mongodb kommandoen og er tilgjengelig lokalt i det spesifikke nodeprosjektet:

konst mongodb = krever ( 'mongodb' )

Kjør '.js'-filen:

nodeindeks. js

Utgangen genererer den diskuterte feilen fordi 'mongodb' ikke er installert lokalt i det gjeldende nodeprosjektet:

Løsning: Installer modulen lokalt

Løsningen på feilen er å installere modulen lokalt for et spesifikt Node.js-prosjekt på et Linux-basert operativsystem.

Her er ' mongodb '-modulen installeres lokalt i det gjeldende prosjektet ved hjelp av 'npm' installasjonskommandoen:

npm installer mongodb

Når den lokale installasjonen av 'mongodb' er fullført, importerer du den til '.js'-filen og kjører den:

nodeindeks. js

Det kan sees at feilen 'Kan ikke finne modulen' er løst ved å installere 'mongodb'-modulen lokalt for det nåværende Node.js-prosjektet:

I Windows, den globale og lokale installasjonen av en modul genererer ikke feilen 'Kan ikke finne modul'.

Årsak 6: Manglende oppføringsfil

« Finner ikke modulen ”-feil kan også genereres på grunn av manglende hovedoppføringsfil i en “package.json” i modulen. Hovedinngangsfilen til hver modul er 'index.js'-filen som standard.

Anta at hvis brukeren fjerner den utilsiktet, vil feilen ovenfor genereres. Dette er fordi mens du importerer den angitte modulen, ' krever() ”-metoden navigerer til modulens mappe og ser etter inngangspunktet, hvis det ikke eksisterer, kan det ikke importere den modulen til Node.js-applikasjonen.

Oppføringsfilen 'index.js' til den nødvendige modulen er til stede i mappestrukturen. Utdraget nedenfor viser oppføringsfilen til 'mysql'-modulen:

Nå fjernes den uthevede 'index.js'-filen fra 'mysql'-mappen og importeres deretter 'mysql'-modulen til Node.js-applikasjonen:

konst mysql = krever ( 'mysql' )

Kjør '.js'-filen:

nodeindeks. js

Her genererer utdata feilen 'Kan ikke finne modul' på grunn av manglende oppføringsfil til 'mysql'-modulen:

Løsning: Installer nødvendig modul på nytt

Løsningen på feilen ovenfor er å slette ' node_modules ”-katalogen og installer den nødvendige modulen på nytt. Her blir 'mysql'-modulen installert igjen etter sletting av 'node_modules'-katalogen:

npm installer mysql

Etter vellykket installasjon av 'mysql', den nye ' node_modules '-katalogen genereres automatisk som inneholder mappestrukturen til 'mysql'-modulen der 'index.js' er til stede:

Kjør '.js'-filen igjen:

nodeindeks. js

Her genererer ikke utdata noen 'Kan ikke finne modul'-feil på grunn av eksistensen av en oppføringsfil kalt 'index.js' av 'mysql'-modulen:

Hva skal jeg gjøre hvis 'Kan ikke finne modulen'-feilen fortsatt vedvarer?

Hvis ' Finner ikke modulen '-feilen vedvarer etter å ha løst den med noen av løsningene ovenfor, og slett deretter ' node_modules ' mappe. 'node_modules'-mappen genereres automatisk når en tredjepartsmodul er installert. Den inneholder alle tredjepartspakkene som Node.js-prosjektet er avhengig av.

Dessuten, ' package-lock.json '-filen genereres også automatisk når en pakke er installert med 'npm'. Den holder oversikt over avhengigheter så vel som underavhengigheter som pakken avhenger av sammen med versjonene deres. Hvis pakken er installert med 'garn', er dette filnavnet ' garn.lås '.

Løsning: Fjern 'node_modules'-mappen og 'package-lock.json'-filen

Løsningen på feilen er å slette 'node_modules'-mappen og filen 'package-lock.json/yarn.lock' og installere den nødvendige pakken på nytt.

I Linux , kan den spesifiserte mappen og filene slettes ved hjelp av den nedenfor angitte ' rm (fjern)' kommando:

rm - rf node_modules-pakken - låse. json //Slett mappe og fil

ls // Vis fil og kataloger

I kommandoen ovenfor ' -r ' flagget sletter den angitte mappen ' rekursivt ' inkludert alle underkatalogene og ' f ' flagget forteller tolken å utføre denne oppgaven ' kraftig ':

Utdataene viser at mappen 'node_modules' og filen 'package-lock.json/yarn.lock' er fjernet fullstendig fra det nåværende Node.js-prosjektet:

I Windows , kan brukeren slette mappen 'node_modules' og filen 'package-lock.json/yarn.lock' ved å trykke på ' slette '-tasten eller ved å bruke 'slett'-alternativet fra rullegardinmenyen.

Det handler om å løse feilen 'Kan ikke finne modul' i Node.js.

Konklusjon

For å løse ' Finner ikke modulen '-feil, 'installer den nødvendige modulen', 'spesifiser dens riktige bane', 'skriv inn riktig tilfelle i 'require()'-metoden', og også 'skriv inn riktig filtype'. Dessuten kan det også løses å 'installere modulen lokalt' i Node.js-prosjektet. Hvis den spesielle feilen vedvarer, fjern 'node_modules'-mappen, 'package-lock.json'-filen, og installer deretter den nødvendige modulen igjen via 'npm/yarn'. Dette innlegget har diskutert alle mulige årsaker sammen med løsningen deres for å løse feilen 'Kan ikke finne modul' ved å bruke Node.js.