Paano Lutasin ang Error na 'Hindi mahanap ang module' Gamit ang Node.js?

Paano Lutasin Ang Error Na Hindi Mahanap Ang Module Gamit Ang Node Js



Tulad ng ibang mga programming language, hindi kailangang hatiin ng Node.js ang source code ng application sa maliliit na piraso. Isinulat nito ang lahat ng source code sa isang '.js' na file at ang interpreter ay hindi nagdudulot ng anumang mga isyu. Gayunpaman, habang gumagawa ng napakakomplikadong Node.js application, inirerekomendang hatiin ang source code sa mas maliliit na module at pagkatapos ay pagsamahin ang mga ito sa isang magkakaugnay na application.

Mabilis na Balangkas

Ano ang isang Module sa Node.js?

Sa Node.js, ang “ modyul ” ay tumutugma sa isang library na bumubuo ng isang koneksyon sa isang application batay sa konteksto nito. Nagbibigay-daan ito sa mga developer na muling gamitin ang naka-encapsulated na code sa tuwing kinakailangan ito. Ito ay ikinategorya sa tatlong pangunahing kategorya: 'built-in', 'lokal' at 'third-party' na mga module. Ang mga module na ito ay naglalaman pa ng malawak na hanay ng mga pamamaraan at katangian na gumaganap ng mga operasyong tinukoy ayon sa kanilang mga pag-andar.







Paano Lutasin ang Error na 'Hindi mahanap ang module' Gamit ang Node.js?

Inililista ng seksyong ito ang lahat ng posibleng dahilan na bumubuo ng error na 'Hindi mahanap ang module' at nagbibigay din ng mga magagamit na solusyon upang malutas ito:



Dahilan 1: Hindi Naka-install ang Kinakailangang Module

Ang pinakakaraniwang dahilan para sa ' Hindi mahanap ang module 'Ang mali ay iyon ang kinakailangan' Hindi naka-install ang third-party na module ” sa kasalukuyang proyekto ng Node.js. Kumbaga, ini-import namin ang third-party na 'mysql' na module sa Node.js application sa ganitong paraan:



const mysql = nangangailangan ( 'mysql' ) ;

Sa utos sa itaas, ang ' nangangailangan() Kasama sa pamamaraang 'mysql' ang module na 'mysql' sa kasalukuyang application ng node.js.





Isagawa ang '.js' na file:

index ng node. js

Ang output sa ibaba ay bumubuo ng tinalakay na error dahil ang 'mysql' na module ay hindi naka-install sa kasalukuyang proyekto ng Node.js:



Solusyon: I-install ang Kinakailangang Module

Ang solusyon sa error na tinalakay sa itaas ay ang pag-install ng kinakailangang module nang maayos sa tulong ng ' npm / sinulid ” manager ng package. Para sa sitwasyong ito, ang kinakailangang 'mysql' na module ay naka-install na may 'npm' na utos sa pag-install:

npm i-install ang mysql

Ipinapakita ng output ang matagumpay na pag-install ng 'mysql' na module sa kasalukuyang proyekto ng Node.js:

Ngayon, isagawa muli ang '.js' na file:

index ng node. js

Masusuri na matagumpay na naisakatuparan ang command sa itaas nang hindi nabubuo ang error na 'Hindi mahanap ang module':

Dahilan 2: Maling Landas ng Module

Isa pang dahilan para sa ' Hindi mahanap ang module 'ang error ay ang' maling landas ng module ”. Karaniwan itong nangyayari kapag nag-import ang user ng lokal na module sa pamamagitan ng relatibong landas nito. Ipagpalagay, ang user ay gumagawa ng custom na module sa partikular na folder at ini-import ito sa Node.js application. Bago gawin ito, tiyaking tama ang tinukoy na landas kung hindi ay makakatagpo ang tinalakay na error.

Halimbawa, isang module na lokal/tinukoy ng user na pinangalanang “ myModule ' ay nasa folder na './custom-modules':

Ini-import ng user ang naka-highlight na 'myModule' sa itaas sa kasalukuyang application ng Node.js sa pamamagitan ng relatibong landas nito:

const mga wika = nangangailangan ( './myModule' ) ;

Patakbuhin ang '.js' na file:

index ng node. js

Makikita na dahil sa maling landas ng 'myModule' ang Error na 'Hindi mahanap ang module' ay nabuo:

Solusyon: Tukuyin ang Tamang Landas ng Module

Ang solusyon sa napag-usapan na error ay tukuyin ang tama o eksaktong landas ng module kung saan ito matatagpuan. Dito, naipasa namin ang tamang landas na 'myModule' upang malutas ang error na 'Hindi mahanap ang module':

const mga wika = nangangailangan ( './custom-modules/myModule' ) ;

Simulan ang '.js' na file:

index ng node. js

Mapapansin na ang output sa ibaba ay hindi nagpapakita ng nakatagpo na error dahil ang tinukoy na landas ng na-import na module ay naitama:

Dahilan 3: Maling Pangalan ng Module (Case Sensitive)

Ang mga module ay ' case-sensitive ” sa Linux at macOS, tulad ng kung naka-install ang pangalan ng module sa uppercase at ini-import ito ng user sa lowercase pagkatapos ay ang “ Hindi mahanap ang module ” malilikha ang error. Ito ay dahil may mismatch sa pagitan ng aktwal na pangalan ng module at ng import statement.

Dito, ang naka-install na 'csvtojson' na module ay ini-import sa 'uppercase' sa Node.js application:

const csvtojson = nangangailangan ( 'CSVTOJSON' ) ;

Isagawa ang '.js' na file:

index ng node. js

Ang output ay bumubuo ng error na 'Hindi mahanap ang module' dahil sa maling pangalan ng module:

Solusyon: I-type ang Tamang Pangalan ng Module

Ang solusyon sa nasa itaas na mukha na error ay upang tukuyin ang tamang kaso (ibababa o itaas) ng na-import na module habang ginagamit ang ' nangangailangan() ” paraan. Sa sitwasyong ito, ang 'csvtojson' na module ay tinukoy sa 'require()' na paraan sa tamang kaso nito:

const csvtojson = nangangailangan ( 'csvtojson' ) ;

Patakbuhin muli ang '.js' na file:

index ng node. js

Ngayon, ang utos sa itaas ay hindi nakabuo ng error na 'Hindi mahanap ang module' dahil ang na-import na package case ay pareho sa aktwal na pangalan nito:

Dahilan 4: Maling File Extension

Ang ' Hindi mahanap ang module Ang 'error ay maaari ding mangyari dahil sa' maling extension ng file ”. Katulad ng hindi tamang landas ng file na nangyayari ito sa kaso ng mga lokal na module. Halimbawa, ang isang lokal na module ay ginawa sa '.json' na file at tinukoy sa Node.js application na may extension na '.js' pagkatapos ay nabuo ang partikular na error sa itaas:

Sa sitwasyong ito, ang ' myModule.js Ang ” na ipinapakita sa “ Maling Landas ng Module” ay kinuha bilang isang sample na file. Naa-access ito sa kasalukuyang application ng Node.js sa pamamagitan ng pagtukoy sa extension nito na '.json' tulad nito:

const mga wika = nangangailangan ( './custom-modules/myModule.json' ) ;

Isagawa ang '.js' na file:

index ng node. js

Ang output ay bumubuo ng error na 'Hindi mahanap ang module' dahil sa maling extension ng file ng 'myModule' na file:

Solusyon: I-type ang Tamang File Extension

Ang solusyon sa tinalakay na error ay ang pag-type ng tamang extension ng file kung saan nilikha ang lokal na module. Halimbawa, tinukoy namin ang tamang extension ng file ng 'myModule.js' na file upang malutas ang error na 'Hindi mahanap ang module':

const mga wika = nangangailangan ( './custom-modules/myModule.js' ) ;

Patakbuhin ang '.js' na file:

index ng node. js

Ngayon, matagumpay na naisakatuparan ang command sa itaas nang hindi ipinapakita ang error na 'Hindi mahanap ang module':

Dahilan 5: Pandaigdigang Pag-install ng isang Module

Ang mga module ng node ay maaaring i-install nang lokal (para sa isang partikular na proyekto) o sa buong mundo (para sa lahat ng mga proyekto). Sa Linux , Kung ang kinakailangang module ay naka-install sa buong mundo sa isang operating system at na-access sa isang partikular na proyekto nang walang lokal na pag-install pagkatapos ay ang ' Hindi mahanap ang module ” nabuo ang error.

Halimbawa, ang ' mongodb Ang module ay pandaigdig na naka-install sa Linux operating system sa pamamagitan ng ' sudo npm install -g mongodb ” utos at lokal na na-access sa partikular na proyekto ng node:

const mongodb = nangangailangan ( 'mongodb' )

Patakbuhin ang '.js' na file:

index ng node. js

Ang output ay bumubuo ng tinalakay na error dahil ang 'mongodb' ay hindi naka-install nang lokal sa kasalukuyang proyekto ng Node:

Solusyon: I-install ang Module nang Lokal

Ang solusyon sa naranasan na error ay ang pag-install ng module nang lokal para sa isang partikular na proyekto ng Node.js sa isang Linux-based na operating system.

Dito, ang ' mongodb 'Ang module ay lokal na naka-install sa kasalukuyang proyekto sa tulong ng 'npm' na utos sa pag-install:

npm install mongodb

Kapag nakumpleto na ang lokal na pag-install ng 'mongodb', i-import ito sa '.js' na file at i-execute ito:

index ng node. js

Makikita na ang error na 'Hindi mahanap ang module' ay nalutas sa pamamagitan ng pag-install ng 'mongodb' module nang lokal para sa kasalukuyang proyekto ng Node.js:

Sa Windows, ang global at lokal na pag-install ng isang module ay hindi bumubuo ng error na 'Hindi mahanap ang module'.

Dahilan 6: Nawawalang Entry File

Ang ' Hindi mahanap ang module ” error ay maaari ding mabuo dahil sa nawawala ang pangunahing entry file sa isang “package.json” ng module. Ang pangunahing entry file ng bawat module ay ang 'index.js' na file bilang default.

Ipagpalagay, Kung inalis ito ng user nang hindi sinasadya, mabubuo ang error na nasa itaas. Ito ay dahil habang ini-import ang tinukoy na module ang ' nangangailangan() ” na paraan ay nagna-navigate sa folder ng module na iyon at hinahanap ang entry point, kung wala ito, hindi nito mai-import ang module na iyon sa Node.js application.

Ang entry file na 'index.js' ng kinakailangang module ay nasa loob ng istraktura ng folder nito. Ipinapakita ng snippet sa ibaba ang entry file ng 'mysql' module:

Ngayon, ang naka-highlight sa itaas na 'index.js' na file ay tinanggal mula sa 'mysql' na folder at pagkatapos ay na-import ang 'mysql' na module sa Node.js application:

const mysql = nangangailangan ( 'mysql' )

Isagawa ang '.js' na file:

index ng node. js

Dito, ang output ay bumubuo ng error na 'Hindi mahanap ang module' dahil sa nawawala ang entry file ng 'mysql' na module:

Solusyon: I-install Muli ang Kinakailangang Module

Ang solusyon sa error na nasa itaas ay tanggalin ang ' node_modules ” direktoryo at i-install muli ang kinakailangang module. Dito, muling na-install ang module na 'mysql' pagkatapos tanggalin ang direktoryo ng 'node_modules':

npm i-install ang mysql

Matapos ang matagumpay na pag-install ng 'mysql', ang bagong ' node_modules Ang direktoryo ng ” ay awtomatikong nabuo na naglalaman ng istraktura ng folder ng module na “mysql” kung saan naroroon ang “index.js”:

Ngayon, patakbuhin muli ang '.js' na file:

index ng node. js

Dito, ang output ay hindi bumubuo ng anumang 'Hindi mahanap ang module' na error dahil sa pagkakaroon ng isang entry file na pinangalanang 'index.js' ng 'mysql' na module:

Ano ang Gagawin Kung Nagpapatuloy Pa rin ang Error na 'Hindi Makahanap ng Module'?

kung ang ' Hindi mahanap ang module ' nagpapatuloy ang error pagkatapos malutas ito sa alinman sa mga solusyon sa itaas pagkatapos ay tanggalin ang ' node_modules ” folder. Awtomatikong bubuo ang folder na 'node_modules' kapag na-install ang isang third-party na module. Naglalaman ito ng lahat ng mga third-party na pakete kung saan nakasalalay ang proyekto ng Node.js.

Bukod dito, ang ' package-lock.json ” file ay awtomatikong bumubuo din kapag ang isang pakete ay naka-install na may 'npm'. Pinapanatili nito ang talaan ng mga dependency pati na rin ang mga sub-dependencies kung saan nakasalalay ang package kasama ng kanilang mga bersyon. Kung ang package ay naka-install na may 'yarn' kung gayon ang pangalan ng file na ito ay ' sinulid.kandado ”.

Solusyon: Alisin ang “node_modules” Folder at “package-lock.json” File

Ang solusyon sa nakatagpo na error ay tanggalin ang 'node_modules' na folder at ang 'package-lock.json/yarn.lock' na file at i-install muli ang kinakailangang package.

Sa Linux , ang tinukoy sa itaas na folder at mga file ay maaaring tanggalin sa tulong ng nakasaad sa ibaba na ' rm (alisin)” utos:

rm - rf node_modules package - kandado. json // Tanggalin ang Folder at File

ls // Display File at Mga Direktoryo

Sa utos sa itaas ang ' -r ' tinatanggal ng bandila ang tinukoy na folder ' recursively ” kasama ang lahat ng mga subdirectory nito at ang “ f ' sinasabi ng bandila sa interpreter na gawin ang gawaing ito ' pilit ”:

Ipinapakita ng output na ang folder na 'node_modules' at ang file na 'package-lock.json/yarn.lock' ay ganap na naalis mula sa kasalukuyang proyekto ng Node.js:

Sa Windows , maaaring tanggalin ng user ang folder na “node_modules” at ang “package-lock.json/yarn.lock” na file sa pamamagitan lamang ng pagpindot sa “ tanggalin ” key o gamit ang opsyong “delete” mula sa drop-down na menu.

Iyon lang ang tungkol sa pagresolba sa error na 'Hindi mahanap ang module' sa Node.js.

Konklusyon

Upang malutas ang ' Hindi mahanap ang module ” error, “i-install ang kinakailangang module”, “tukuyin ang tamang landas nito”, “i-type ang tamang case sa pamamaraang “require()”, at “i-type din ang tamang extension ng file”. Bukod dito, maaari din itong lutasin na 'i-install ang module nang lokal' sa proyekto ng Node.js. Kung magpapatuloy ang partikular na error pagkatapos ay alisin ang folder na 'node_modules', ang file na 'package-lock.json', at pagkatapos ay i-install muli ang kinakailangang module sa pamamagitan ng 'npm/yarn'. Tinalakay ng post na ito ang lahat ng posibleng dahilan kasama ang kanilang solusyon upang malutas ang error na 'Hindi mahanap ang module' gamit ang Node.js.