node.js, Kesalahan: Tidak dapat menemukan modul 'express'

125

Saya baru mengenal Node.js, mencoba belajar ekspres untuk membangun aplikasi web pertama saya. Saya terjebak pada kode sampel pertama saya dan perlu bantuan untuk menjalankannya. Sebelum saya memposting pertanyaan ini, saya melakukan pencarian di stack overflow, menemukan beberapa pertanyaan serupa tetapi masih tidak dapat memperbaikinya.

Error: Tidak dapat menemukan modul 'express'

Saya menggunakan mac os 10.8.2 . Saya telah menginstal Node.js menggunakan nvm.

node.js: 0.8.20 jalur ke node: /Users/feelexit/nvm/v0.8.20/bin/node jalur untuk mengekspresikan: / Users / feelexit / nvm / node_modules / express

berikut kode contoh saya: file ini terletak di:

/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);

ketika saya mencoba menjalankan perintah ini node index.js

Saya mendapatkan pesan kesalahan berikut, tolong bantu saya untuk memperbaikinya.

Terima kasih.

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$ 

Pembaruan untuk menjawab pertanyaan chovy:

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
qinking126
sumber
Mungkin ini akan membantu stackoverflow.com/questions/9133784/…
pengguna568109
30
Apakah Anda mengetiknpm install
chovy
1
Apakah Anda yakin bahwa perpustakaan ekspres ada di folder "node_modules" Anda? Anda mungkin juga ingin mencoba memindahkan file index.js Anda ke atas satu direktori ke "/ Users / feelexit / WebstormProjects / learnnode /" dan biarkan folder node_modules saja.
Default
1
Silakan posting package.jsonfile Anda . Itu akan membantu dalam men-debug masalah.
Akhil Raina
@chovy, saya menggunakan npm install express untuk menginstal express. apa yang hanya dilakukan "npm install"?
qinking126

Jawaban:

157

Ia mengatakan

 Cannot find module 'express'

Apakah Anda telah menginstal ekspres? Jika tidak, jalankan ini.

 npm install express

Dan jalankan kembali program Anda.

Saurabh Rana
sumber
1
Ini tidak memperbaiki masalah dalam kasus saya. npm install expressmenunjukkan kesalahan ini npm ERR! Error: UNKNOWN, symlink '../express/bin/express'. Tampaknya menjadi masalah yang lebih dalam.
Sliq
Gunakan sudo jika Anda belum memperbaiki izin direktori Anda untuk npm. Bagaimanapun, "sudo npm install" adalah opsi yang lebih baik.
Gaurav Gupta
Kesalahan symlink sering terjadi, jika Anda menginstal sesuatu secara global dan, ya, symlink rusak. Cobalah npm linkuntuk membuat ulang tautan masing-masing ...
Frank Nocke
@Sliq Saya mencoba dengan solusi Anda tetapi saya tidak dapat menyelesaikan masalah saya, bisakah Anda membantu saya?
VjyV
Jangan mengabaikan "Dan jalankan program Anda lagi." Dalam kasus saya, saya harus memulai ulang proses di file process manager. Itu tidak restart dengan sendirinya.
Tadej
42

Setelah Anda melakukan ekspres di terminal Anda, maka lakukan

 npm install

Untuk menginstal semua dependensi.

Kemudian Anda dapat melakukan aplikasi node untuk menjalankan server.

Tagihan
sumber
7
Anda harus menunjukkan bahwa ini membutuhkan file daftar paket yaitu .json .. Dan ini tidak selalu terjadi.
Pogrindis
@VjyV di direktori yang sama dengan file node .js Anda. Tetapi itu harus memiliki file package.json di direktori sehingga dapat menginstal dependensi yang diperlukan.
Saurabh Rana
34

Periksa apakah Anda telah menginstal expressmodul. Jika tidak, gunakan perintah ini:

npm install express

dan jika node_modulesdirektori Anda berada di tempat lain, setel NODE_PATHvariabel lingkungan:

set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
Reza Ebrahimi
sumber
12
Ini adalah jawaban yang benar, untuk semua orang yang memposting CTRL+C / CTRL+V npm installjawaban ini : apakah menurut Anda ada orang yang akan mencoba menjalankan sesuatu tanpa memeriksa apakah sudah diinstal terlebih dahulu? Serius ...
Claudio Holanda
3
Hanya menambahkan detail kecil: Anda perlu menjalankan perintah install express di direktori aplikasi Anda dan bukan di folder instalasi Node.js atau folder npm di AppData. Karena itulah kesalahan yang saya buat, karena saya pikir itu semacam add-on SDK.
Alex
29

 npm install --save express   
Ini berhasil untuk saya, Jalankan saja instalasi express.js lagi

Bonface Ochieng
sumber
11

npm install dari dalam direktori aplikasi Anda akan memperbaiki masalah ini karena akan menginstal semua yang diperlukan

Eldad
sumber
5

Menggali utas lama di sini TETAPI saya mengalami kesalahan yang sama dan saya menyelesaikannya dengan menavigasi ke direktori tempat NodeApp saya berada dan berjalan npm install -d

Wjdavis5
sumber
Tidak yakin mengapa atau bagaimana itu penting tetapi ini menginstalnya di devdependencies Anda: docs.npmjs.com/cli/install
Guy Lowe
1
@GuyLowe -dadalah debug untuk npm, -Dadalah dependensi dev.
John Pavek
4

Kecuali Anda menyetel Node_PATH , satu-satunya opsi lain adalah memasang express di direktori aplikasi, seperti npm install express --save. Express mungkin sudah diinstal tetapi nodetidak dapat menemukannya karena alasan tertentu

Shemogumbe
sumber
Yang ini berfungsi untuk saya, lebih baik jalankan perintah install di direktori yang sama dengan file .js Anda. Anda juga dapat menjalankan perintah "npm init" untuk membuat file package.json untuk menghindari masalah lebih lanjut.
emarshah
3

Anda menempatkan modul ekspres Anda di direktori yang berbeda dari proyek Anda. Mungkin itu masalahnya karena Anda mencobanya require()secara lokal. Coba pindahkan modul ekspres Anda dari / Users / feelexit / nvm / node_modules / express ke / Users / feelexit / WebstormProjects / learnnode / node_modules / express . Info ini dapat memberi Anda lebih banyak detail tentang struktur file node_module.

Default
sumber
2

jika file utama Anda terletak di /Users/feelexit/WebstormProjects/learnnode/node_modules/index.jsmaka express perlu ditempatkan di /Users/feelexit/WebstormProjects/learnnode/node_modules/node_moduleskarena node selalu mencari modul di ./node_modules(dan folder internalnya) ketika jalur tidak dimulai dengan ./atau /( info lebih lanjut di sini )

Saya pikir Anda melewatkan file utama Anda di folder modul

VeXii
sumber
2

untuk skenario ini jalankan perintah npm install express menggunakan prompt cmd Anda untuk folder terkait tempat Anda ingin menjalankan program. Contoh Saya ingin menjalankan program modul server.js ekspres di F: \ nodeSample. Jadi jalankan "npm install express" di folder tersebut lalu jalankan server.js

Rijo
sumber
1

Jalankan npm install express body-parser cookie-parser multer --saveperintah di direktori yang sama dengan file nodejs kode sumber Anda untuk mengatasi masalah ini. P / s: periksa direktori Anda setelah perintah run untuk memahami lebih lanjut!

Apakah Tat Hoan
sumber
1

Dalam kasus yang jarang terjadi, cache npm mungkin rusak. Bagi saya, yang berhasil adalah:

npm cache clean --force

Umumnya, manajer paket akan mendeteksi korupsi dan mengambil ulang sendiri jadi ini biasanya tidak diperlukan. Namun, dalam kasus saya Windows 10 macet beberapa kali dan saya curiga ini mungkin terjadi selama operasi pengambilan. Semoga bisa membantu seseorang!

Informasi lebih lanjut: https://docs.npmjs.com/cli/cache

jwerner
sumber
1

Saya telah menemukan masalah serupa dan pada akhirnya itu adalah masalah beberapa dependensi lama yang mengacaukan server Heroku saya.

Saat berada di folder proyek saya, saya telah menjalankan:

npm uninstall
npm install

Saya harap ini membantu

HClx
sumber
0

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

Ini terjadi karena izin yang hilang atau file yang tidak ditautkan saat npm berfungsi.

Artinya, mengeksekusi itu npm sebagai pengguna ini tidak memiliki cukup hak untuk membaca / menulis dari file, dalam hal ini package.json.

coba tambahkan sudosebelum seluruh perintah - itu harus diselesaikan.

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

Kata sandi akan menjadi kata sandi admin Anda di mac Anda.

-gflag akan menginstal modul ini (express) dalam konteks global node - artinya node akan / harus mengenali expressmodul dari dalam file js apa pun tanpa harus menyediakan jalur lengkap ke modul yang digunakan.

Semoga ini membantu!!

menggelapkan
sumber
0

Saya memiliki masalah yang sama. Masalah saya adalah saya harus mengubah ke direktori proyek Node.js pada baris perintah sebelum menginstal express.

cd /Users/feelexit/WebstormProjects/learnnode/node_modules/
pengguna3377708
sumber
0

Saya menduga ini adalah tugas dari kursus Pengembangan Web Colt Steele ... Saya mencari jawaban yang sama tentang mengapa saya berakhir dengan kesalahan itu juga .. Colt tidak mengatakannya tetapi Anda mengambil folder node_module dan memindahkan ke folder baru tempat Anda bekerja ... itulah yang berhasil untuk saya.

Bibi DeLeon
sumber
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)

Terkadang versi tidak cocok dengan package.json Perbaiki masalah dengan memeriksa package.json kemudian gunakan perintah berikut: npm install [email protected] itu diselesaikan untuk saya.

Sarath Kumar
sumber
0

Sudahkah kamu mencoba

npm install

Jika Anda secara khusus mencari ekspres

npm install --save express
Akash Yellappa
sumber