node.js, Hata: 'express' modülü bulunamıyor


125

Node.js'de yeniyim, ilk web uygulamamı oluşturmak için express'i öğrenmeye çalışın. İlk örnek kodumda takılı kaldım ve çalıştırmak için biraz yardıma ihtiyacım var. Bu soruyu göndermeden önce, yığın taşması üzerinde arama yaptım, bazı benzer sorular buldum ama yine de düzeltemedim.

Hata: 'express' modülü bulunamıyor

Mac os 10.8.2 kullanıyorum . Kullanarak Node.js yükledim nvm.

node.js: 0.8.20 düğüme giden yol: /Users/feelexit/nvm/v0.8.20/bin/node ifade edilecek yol: / Kullanıcılar / feelexit / nvm / node_modules / express

işte benim örnek kodum: bu dosya şurada bulunur:

/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js

var express = require('express');

var app = express();

app.get('/', function(req, res){

    res.send('welcome to express');
});

app.listen(3000);

bu komutu çalıştırmayı denediğimde node index.js

Aşağıdaki hata mesajını alıyorum, lütfen düzeltmeme yardım edin.

Teşekkür ederim.

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js:1:81)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
feelexits-Mac:node_modules feelexit$ 

Chovy'nin sorusunu yanıtlamak için güncelleme:

feelexits-Mac:~ feelexit$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.2.0
npm ERR! command "/Users/feelexit/nvm/v0.8.20/bin/node" "/Users/feelexit/nvm/v0.8.20/bin/npm" "install"
npm ERR! cwd /Users/feelexit
npm ERR! node -v v0.8.20
npm ERR! npm -v 1.2.11
npm ERR! path /Users/feelexit/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/feelexit/npm-debug.log
npm ERR! not ok code 0


31
npm install
Yazdınız

1
Ekspres kitaplığın "node_modules" klasörünüzde olduğundan emin misiniz? Ayrıca index.js dosyanızı bir üst dizine "/ Users / feelexit / WebstormProjects / learnnode /" klasörüne taşımayı deneyebilir ve node_modules klasörünü tek başına bırakabilirsiniz.
Varsayılan

1
Lütfen package.jsondosyanızı gönderin . Bu, sorunun giderilmesine yardımcı olacaktır.
Akhil Raina

@chovy, express'i yüklemek için npm install express kullanıyorum. sadece "npm kurulumu" ne işe yarar?
qinking126

Yanıtlar:


157

Diyor ki

 Cannot find module 'express'

Ekspres yüklediniz mi? Değilse, bunu çalıştırın.

 npm install express

Ve programınızı tekrar çalıştırın.


1
Bu benim durumumdaki sorunu çözmez. npm install expressbu hatayı gösterir npm ERR! Error: UNKNOWN, symlink '../express/bin/express'. Daha derin bir mesele gibi görünüyor.
Sliq

Npm için dizin izinlerinizi düzeltmediyseniz sudo kullanın. Her durumda, "sudo npm install" daha iyi bir seçenektir.
Gaurav Gupta

symlink Bir şeyleri global olarak yüklediyseniz ve evet, sembolik bağ bozulduysa, sıklıkla hatalar oluşur. npm linkİlgili bağlantıyı yeniden oluşturmaya çalışın ...
Frank Nocke

@Sliq Sizin çözümünüzü denedim ama problemimi çözemiyorum bana yardım edebilir misiniz?
VjyV

"Ve programınızı tekrar çalıştırın." Benim durumumda süreci yeniden başlatmak zorunda kaldım process manager. Kendi kendine yeniden başlamadı.
Tadej

42

Terminalinizde ekspres yaptıktan sonra, şunu yapın:

 npm install

Tüm bağımlılıkları kurmak için.

Ardından sunucuyu çalıştırmak için düğüm uygulaması yapabilirsiniz.


7
Bunun bir paket listesi dosyası, yani .json gerektirdiğini belirtmelisiniz .. Ve bu her zaman böyle değildir.
Pogrindis

@VjyV aynı dizinde .js düğüm dosyanız var. Ancak, gerekli bağımlılıkları yükleyebilmesi için dizinde package.json dosyasına sahip olması gerekir.
Saurabh Rana

34

expressModülü kurup kurmadığınızı kontrol edin . Değilse, şu komutu kullanın:

npm install express

ve eğer senin node_modules dizininiz başka bir NODE_PATHyerdeyse , envirnment değişkenini ayarlayın :

set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%

12
BuCTRL+C / CTRL+V npm install cevapları gönderen herkes için doğru cevap bu : gerçekten birilerinin bir şeyi önce kurulup kurulmadığını kontrol etmeden çalıştırmaya çalışacağını düşünüyor musunuz? Cidden ...
Claudio Holanda

3
Küçük bir ayrıntı eklemek için: install express komutunu , Node.js kurulum klasörünüzde veya AppData'daki npm-klasöründe değil , uygulamanızın dizininde çalıştırmanız gerekir . Çünkü yaptığım hata bu, çünkü bunun bir çeşit SDK eklentisi olduğunu düşündüm.
Alex

29

 npm install --save express   
Bu benim için çalıştı, sadece express.js kurulumunu tekrar çalıştırın


11

Uygulama dizininizden npm kurulumu, gereken her şeyi yükleyeceği için sorunu çözecektir


5

Burada eski bir iş parçacığını kazıyorum AMA aynı hatayı aldım ve NodeApp'ımın bulunduğu dizine gidip çalışarak çözdüm npm install -d


Neden veya nasıl önemli olduğundan emin değilim, ancak bu onu dev bağımlılıklarınıza yükler: docs.npmjs.com/cli/install
Guy Lowe

1
@GuyLowe npm -diçin hata ayıklama -D, dev bağımlılıklarıdır.
John Pavek

4

Node_PATH ayarını yapmadığınız sürece , diğer tek seçenek express'i uygulama dizinine kurmaktırnpm install express --save . Express zaten yüklenmiş nodeolabilir, ancak bazı nedenlerden dolayı bulamıyor olabilir


Bu benim için çalıştı, install komutunu .js dosyalarınızla aynı dizinde daha iyi çalıştırın. Ayrıca daha fazla sorun yaşamamak için package.json dosyasını oluşturmak için "npm init" komutunu çalıştırabilirsiniz.
emarshah

3

Ekspres modülünüz projenizden farklı bir dizinde bulunuyor. require()Yerel olarak denediğiniz için muhtemelen sorun budur . Adresinin ekspres modülü taşımayı deneyin / feelexit / nvm / node_modules / ekspres / Kullanıcılar için / Users / feelexit / WebstormProjects / learnnode / node_modules / ekspres . Bu bilgi size node_module dosya yapıları hakkında daha fazla ayrıntı verebilir.


2

Eğer ana dosyanız şurada ise /Users/feelexit/WebstormProjects/learnnode/node_modules/index.js bulunuyorsa , yol veya ile başlamadığında /Users/feelexit/WebstormProjects/learnnode/node_modules/node_modulesdüğüm her zaman içindeki modülleri ./node_modules(ve iç klasörünü) aradığından ifade bulunmalıdır ( daha fazla bilgi burada.// )

Ana dosyayı modül klasörüne yerleştirmeyi özlediğini düşünüyorum


2

bu senaryo için, programı çalıştırmak istediğiniz ilgili klasör için cmd isteminizi kullanarak npm install express komutunu çalıştırın. Örnek Server.js ekspres modül programını F: \ nodeSample'da çalıştırmak istiyorum. Bu nedenle, bu klasörde "npm install express" komutunu çalıştırın ve ardından server.js'yi çalıştırın


1

npm install express body-parser cookie-parser multer --saveBu sorunu çözmek için komutu kaynak kodu nodejs dosyanızla aynı dizinde çalıştırın . P / s: daha fazlasını anlamak için çalıştır komutundan sonra dizininizi kontrol edin!


1

Nadir durumlarda, npm önbelleği bozulabilir. Benim için işe yarayan şuydu:

npm cache clean --force

Genel olarak, paket yöneticisi bozulmayı kendi kendine algılar ve yeniden yerleştirir, bu nedenle bu genellikle gerekli değildir. Ancak benim durumumda Windows 10 birkaç kez çöktü ve bunun bir getirme işlemi sırasında olabileceğinden şüpheleniyorum. Umarım birine yardımcı olur!

Daha fazla bilgi: https://docs.npmjs.com/cli/cache


1

Benzer bir sorunla karşılaştım ve sonunda Heroku sunucumu bozan bazı eski bağımlılıklar meselesiydi.

Projemin klasöründeyken şunları çalıştırıyorum:

npm uninstall
npm install

Umut ediyorum bu yardım eder


0

npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'

Bu, npm çalışırken eksik izinler veya bağlantısız dosyalar nedeniyle olur.

Anlamı, bu yürütme npm bu kullanıcı olarak bir dosyadan, bu durumda package.json'dan okuma / yazma için yeterli hakkı yoktur.

sudotüm komuttan önce eklemeyi deneyin - çözülmelidir.

$ sudo npm install -g express
$ Password:*******

Parola, Mac'inizin yönetici parolası olacaktır.

-gflag bu modülü (ifade) genel düğüm bağlamında kuracaktır - yani düğüm, kullanılan expressmodüle tam bir yol sağlamak zorunda kalmadan herhangi bir js dosyası içinden modülü tanıyacak / tanımalıdır .

Bu yardımcı olur umarım!!


0

Ben de aynı sorunu yaşadım. Sorunum, express'i kurmadan önce komut satırında Node.js proje dizinine geçmem gerektiğiydi.

cd /Users/feelexit/WebstormProjects/learnnode/node_modules/

0

Sanırım bu Colt Steele'nin Web Geliştirme kursundan bir kurs ... Ben de neden bu hatayla sonuçlandığıma dair aynı cevabı arıyordum .. Colt öyle söylemiyor ama node_module klasörünü alıp taşı çalıştığınız yeni klasöre ... bu benim için çalıştı.


0
D:\learn\Node.js\node app.js
module.js:549
    throw err;
    ^

Error: Cannot find module 'body-parser'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

Bazen version, package.json ile eşleşmiyor package.json'u kontrol ederek sorunu çözdükten sonra aşağıdaki komutları kullanın: npm install body-parser@1.13.2 benim için çözüldü.


0

Denedin mi

npm install

Özellikle ifade etmek istiyorsanız

npm install --save express
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.