Node.js Kullanarak “Modül bulunamıyor” Hatası Nasıl Çözülür?

Node Js Kullanarak Modul Bulunamiyor Hatasi Nasil Cozulur



Diğer programlama dilleri gibi Node.js'nin de uygulama kaynak kodunu küçük parçalara ayırması gerekmez. Tüm kaynak kodunu bir “.js” dosyasına yazar ve yorumlayıcı herhangi bir soruna neden olmaz. Ancak çok karmaşık bir Node.js uygulaması oluştururken kaynak kodunu daha küçük modüllere bölmeniz ve daha sonra bunları uyumlu bir uygulamada birleştirmeniz önerilir.

Hızlı Taslak

Node.js'de Modül nedir?

Node.js'de “ modül ”, bir uygulamayla bağlamına göre bağlantı kuran bir kitaplığa karşılık gelir. Geliştiricilerin gerektiğinde kapsüllenmiş kodu yeniden kullanmalarına olanak tanır. Üç ana kategoriye ayrılmıştır: “yerleşik”, “yerel” ve “üçüncü taraf” modüller. Bu modüller ayrıca işlevlerine göre belirlenen işlemleri gerçekleştiren geniş bir yöntem ve özellik yelpazesi içerir.





Node.js Kullanarak “Modül bulunamıyor” Hatası Nasıl Çözülür?

Bu bölüm, 'Modül bulunamıyor' hatasına neden olan tüm olası nedenleri listeler ve ayrıca sorunu çözmek için uygulanabilir çözümler sunar:



Sebep 1: Gerekli Modül Kurulu Değil

En yaygın nedeni “ Modül bulunamıyor “Hata şu: gerekli” üçüncü taraf modülü yüklü değil ” mevcut Node.js projesinde. Üçüncü taraf “mysql” modülünü Node.js uygulamasına şu şekilde aktardığımızı varsayalım:



yapı MySQL = gerekmek ( 'mysql' ) ;

Yukarıdaki komutta “ gerekmek() ” yöntemi, mevcut node.js uygulamasına “mysql” modülünü içerir.





“.js” dosyasını yürütün:

düğüm indeksi. js

Aşağıdaki çıktı, mevcut Node.js projesinde “mysql” modülü kurulu olmadığından tartışılan hatayı üretiyor:



Çözüm: Gerekli Modülü Kurun

Yukarıda tartışılan hatanın çözümü, gerekli modülü “” yardımı ile doğru şekilde kurmaktır. npm / iplik ' Paketleme yöneticisi. Bu senaryo için gerekli “mysql” modülü “npm” kurulum komutuyla kurulur:

npm mysql'i yükle

Çıktı, mevcut Node.js projesindeki “mysql” modülünün başarılı kurulumunu gösterir:

Şimdi “.js” dosyasını tekrar çalıştırın:

düğüm indeksi. js

Yukarıdaki komutun “Modül bulunamıyor” hatası oluşmadan başarıyla yürütüldüğü analiz edilebilir:

Sebep 2: Yanlış Modül Yolu

Bir başka neden de ' Modül bulunamıyor ” hatası “ yanlış modül yolu ”. Bu genellikle kullanıcı yerel bir modülü kendi göreceli yolu üzerinden içe aktardığında meydana gelir. Kullanıcının belirli bir klasörde özel bir modül oluşturduğunu ve bunu Node.js uygulamasına aktardığını varsayalım. Bunu yapmadan önce belirtilen yolun doğru olduğundan emin olun, aksi takdirde bahsedilen hatayla karşılaşılacaktır.

Örneğin “adlı yerel/kullanıcı tanımlı bir modül” myModule ”, “./custom-modules” klasöründe mevcut:

Kullanıcı, yukarıda vurgulanan 'myModule'ü ilgili yol aracılığıyla mevcut Node.js uygulamasına aktarır:

yapı Diller = gerekmek ( './myModule' ) ;

“.js” dosyasını çalıştırın:

düğüm indeksi. js

“myModule”ün yanlış yolu nedeniyle “Modül bulunamıyor” Hatasının oluşturulduğu görülebilir:

Çözüm: Doğru Modül Yolunu Belirtin

Yukarıda tartışılan hatanın çözümü, modülün bulunduğu yerin doğru veya tam yolunu belirtmektir. Burada, “Modül bulunamıyor” hatasını çözmek için “myModule”ün doğru yolunu ilettik:

yapı Diller = gerekmek ( './özel-modüller/myModule' ) ;

“.js” dosyasını başlatın:

düğüm indeksi. js

İçe aktarılan modülün belirtilen yolu düzeltildiğinden aşağıdaki çıktının karşılaşılan hatayı göstermediği gözlemlenebilir:

Sebep 3: Yanlış Modül Adı (Büyük/Küçük Harfe Duyarlı)

Modüller “ harfe duyarlı ” Linux ve macOS'ta, örneğin modül adı büyük harfle yüklenmişse ve kullanıcı bunu küçük harfe aktarırsa, ardından “ Modül bulunamıyor ' hatası oluşacaktır. Bunun nedeni, gerçek modül adı ile import ifadesi arasında bir uyumsuzluk olmasıdır.

Burada, kurulu “csvtojson” modülü “büyük harf” olarak Node.js uygulamasına aktarılır:

yapı csvtojson = gerekmek ( 'CSVTOJSON' ) ;

“.js” dosyasını yürütün:

düğüm indeksi. js

Çıkış, yanlış modül adı nedeniyle 'Modül bulunamıyor' hatası veriyor:

Çözüm: Doğru Modül Adını Yazın

Yukarıda karşılaşılan hatanın çözümü, içe aktarılan modülün büyük/küçük harf durumunu (alt veya üst) “” komutunu kullanarak belirtmektir. gerekmek() ' yöntem. Bu senaryoda, “csvtojson” modülü “require()” yönteminde doğru durumda belirtilir:

yapı csvtojson = gerekmek ( 'csvtojson' ) ;

“.js” dosyasını tekrar çalıştırın:

düğüm indeksi. js

Şimdi, yukarıdaki komut 'Modül bulunamıyor' hatasını oluşturmadı çünkü içe aktarılan paket durumu gerçek adıyla aynı:

Sebep 4: Yanlış Dosya Uzantısı

Modül bulunamıyor ' hatası nedeniyle de ortaya çıkabilir ' hatalı dosya uzantısı ”. Yanlış dosya yoluna benzer şekilde, yerel modüllerde de bu durum meydana gelir. Örneğin, “.json” dosyasında yerel bir modül oluşturulur ve Node.js uygulamasında “.js” uzantılı olarak belirtilir ve ardından yukarıdaki belirli hata oluşturulur:

Bu senaryoda “ myModule.js “Yanlış Modül Yolu” nedeni ile gösterilen örnek dosya olarak alınmıştır. Mevcut Node.js uygulamasında uzantısı “.json” şu şekilde belirtilerek erişilir:

yapı Diller = gerekmek ( './custom-modules/myModule.json' ) ;

“.js” dosyasını yürütün:

düğüm indeksi. js

Çıktı, 'myModule' dosyasının yanlış dosya uzantısı nedeniyle 'Modül bulunamıyor' hatası veriyor:

Çözüm: Doğru Dosya Uzantısını Yazın

Tartışılan hatanın çözümü, yerel modülün oluşturulduğu doğru dosya uzantısını yazmaktır. Örneğin “Modül bulunamıyor” hatasını çözmek için “myModule.js” dosyasının doğru dosya uzantısını belirttik:

yapı Diller = gerekmek ( './custom-modules/myModule.js' ) ;

“.js” dosyasını çalıştırın:

düğüm indeksi. js

Artık yukarıdaki komut “Modül bulunamıyor” hatası gösterilmeden başarıyla yürütüldü:

Sebep 5: Bir Modülün Genel Kurulumu

Düğüm modülleri yerel olarak (belirli bir proje için) veya genel olarak (tüm projeler için) kurulabilir. Linux'ta , Gerekli modül bir işletim sisteminde global olarak kuruluysa ve yerel kurulum olmadan belirli bir projede erişiliyorsa “ Modül bulunamıyor ' hatası oluştu.

Örneğin, “ mongodb ” modülü global olarak Linux işletim sistemine “ aracılığıyla kurulur. sudo npm kurulumu -g mongodb ” komutuna sahiptir ve belirli bir düğüm projesinde yerel olarak erişilir:

yapı mongodb = gerekmek ( 'mongodb' )

“.js” dosyasını çalıştırın:

düğüm indeksi. js

Çıktı tartışılan hatayı üretiyor çünkü “mongodb” mevcut Node projesinde yerel olarak kurulu değil:

Çözüm: Modülü Yerel Olarak Kurun

Karşılaşılan hatanın çözümü, Linux tabanlı bir işletim sistemi üzerinde belirli bir Node.js projesi için modülün local olarak kurulmasıdır.

Burada, “ mongodb ” modülü mevcut projeye “npm” kurulum komutu yardımıyla yerel olarak kurulur:

npm mongodb'u yükle

“mongodb”un yerel kurulumu tamamlandığında, onu “.js” dosyasına aktarın ve çalıştırın:

düğüm indeksi. js

Mevcut Node.js projesi için “mongodb” modülünün local olarak kurulmasıyla “Modül bulunamıyor” hatasının çözüldüğü görülmektedir:

Windows'ta, Bir modülün genel ve yerel kurulumu 'Modül bulunamıyor' hatası oluşturmaz.

Sebep 6: Eksik Giriş Dosyası

Modül bulunamıyor ' hatası, modülün bir 'package.json'unda ana giriş dosyasının eksik olması nedeniyle de üretilebilir. Her modülün ana giriş dosyası varsayılan olarak “index.js” dosyasıdır.

Diyelim ki kullanıcı bunu istemeden kaldırırsa yukarıda karşılaşılan hata oluşacaktır. Bunun nedeni, belirtilen modülü içe aktarırken “ gerekmek() ” yöntemi o modülün klasörüne gider ve giriş noktasını arar, eğer mevcut değilse o modülü Node.js uygulamasına aktaramaz.

Klasör yapısında gerekli modülün “index.js” giriş dosyası mevcuttur. Aşağıdaki kod parçası “mysql” modülünün giriş dosyasını gösterir:

Şimdi yukarıda vurgulanan “index.js” dosyası “mysql” klasöründen kaldırılıyor ve ardından “mysql” modülü Node.js uygulamasına aktarılıyor:

yapı MySQL = gerekmek ( 'mysql' )

“.js” dosyasını yürütün:

düğüm indeksi. js

Burada çıktı, “mysql” modülünün giriş dosyasının eksik olması nedeniyle “Modül bulunamıyor” hatası veriyor:

Çözüm: Gerekli Modülü Tekrar Kurun

Yukarıda karşılaşılan hatanın çözümü “ node_modules ”dizinine gidin ve gerekli modülü tekrar yükleyin. Burada “node_modules” dizini silindikten sonra tekrar “mysql” modülü kuruluyor:

npm mysql'i yükle

Başarılı bir şekilde “mysql” kurulumunun ardından yeni “ node_modules “index.js”nin bulunduğu “mysql” modülünün klasör yapısını içeren ”dizini otomatik olarak oluşturulur:

Şimdi “.js” dosyasını tekrar çalıştırın:

düğüm indeksi. js

Burada “mysql” modülünün “index.js” isimli bir giriş dosyasının varlığından dolayı çıktıda herhangi bir “Modül bulunamıyor” hatası oluşmaz:

“Modül Bulunamıyor” Hatası Hala Devam Ediyorsa Ne Yapmalı?

Eğer ' Modül bulunamıyor Yukarıdaki çözümlerden herhangi biriyle çözdükten sonra ' hatası devam ediyor, ardından ' node_modules ' dosya. Üçüncü taraf bir modül yüklendiğinde “node_modules” klasörü otomatik olarak oluşturulur. Node.js projesinin bağlı olduğu tüm üçüncü taraf paketlerini içerir.

Üstelik “ package-lock.json ” dosyası ayrıca “npm” ile bir paket kurulduğunda otomatik olarak oluşturulur. Paketin bağlı olduğu bağımlılıkların yanı sıra alt bağımlılıkların da versiyonlarıyla birlikte kaydını tutar. Paket “yarn” ile kurulursa bu dosya adı “ iplik kilidi ”.

Çözüm: “node_modules” Klasörünü ve “package-lock.json” Dosyasını kaldırın

Karşılaşılan hatanın çözümü “node_modules” klasörünü ve “package-lock.json/yarn.lock” dosyasını silip gerekli paketi tekrar kurmaktır.

Linux'ta yukarıda belirtilen klasör ve dosyalar aşağıda belirtilen “ rm (kaldır)” komutu:

rm - rf node_modules paketi - kilit. json //Klasör ve Dosyayı Sil

ls // Dosya ve Dizinleri Görüntüle

Yukarıdaki komutta “ -R ” flag belirtilen klasörü siler” tekrarlı ” tüm alt dizinleri dahil ve “ F ” bayrağı tercümana bu görevi gerçekleştirmesini söyler “ zorla ”:

Çıktı, 'node_modules' klasörünün ve 'package-lock.json/yarn.lock' dosyasının mevcut Node.js projesinden tamamen kaldırıldığını gösterir:

Windows'ta kullanıcı “node_modules” klasörünü ve “package-lock.json/yarn.lock” dosyasını yalnızca “” tuşuna basarak silebilir. silmek ” tuşuna basın veya açılır menüden “sil” seçeneğini kullanın.

Bunların hepsi Node.js'deki 'Modül bulunamıyor' hatasını çözmekle ilgili.

Çözüm

' sorununu çözmek için Modül bulunamıyor ” hatası, “gerekli modülü kurun”, “doğru yolunu belirtin”, ““require()” yöntemine doğru durumu yazın” ve ayrıca “doğru dosya uzantısını yazın”. Üstelik Node.js projesinde “modülün local olarak kurulması” da çözülebilir. Belirli bir hata devam ederse, 'node_modules' klasörünü ve 'package-lock.json' dosyasını kaldırın ve ardından gerekli modülü 'npm/yarn' aracılığıyla tekrar yükleyin. Bu yazıda, Node.js kullanılarak 'Modül bulunamıyor' hatasını çözmeye yönelik çözümleriyle birlikte tüm olası nedenler tartışıldı.