node.js, Lỗi: Không thể tìm thấy mô-đun 'express'


125

Tôi mới sử dụng Node.js, cố gắng học cấp tốc để xây dựng ứng dụng web đầu tiên của mình. Tôi gặp khó khăn với mã mẫu đầu tiên của mình và cần một số trợ giúp để chạy mã này. Trước khi tôi đăng câu hỏi này, tôi đã tìm kiếm trên stack tràn, tìm thấy một số câu hỏi tương tự nhưng vẫn không khắc phục được.

Lỗi: Không thể tìm thấy mô-đun 'express'

Tôi đang sử dụng mac os 10.8.2 . Tôi đã cài đặt Node.js bằng cách sử dụng nvm.

node.js: Đường dẫn 0.8.20 tới nút: /Users/feelexit/nvm/v0.8.20/bin/node đường dẫn để thể hiện: / Users / feelexit / nvm / node_modules / express

đây là mã mẫu của tôi: tệp này nằm ở:

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

khi tôi cố gắng chạy lệnh này node index.js

Tôi nhận được thông báo lỗi sau, vui lòng giúp tôi khắc phục.

Cảm ơn bạn.

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$ 

Cập nhật để trả lời câu hỏi của 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

Có thể điều này sẽ giúp stackoverflow.com/questions/9133784/…
user568109

30
Bạn có gõ khôngnpm install
chovy

1
Bạn có chắc chắn rằng thư viện express nằm trong thư mục "node_modules" của bạn không? Bạn cũng có thể muốn thử di chuyển tệp index.js của mình lên một thư mục thành "/ Users / feelexit / WebstormProjects / learningnode /" và để riêng thư mục node_modules.
Mặc định

1
Vui lòng đăng package.jsontệp của bạn . Điều đó sẽ giúp gỡ lỗi vấn đề.
Akhil Raina

@chovy, tôi sử dụng npm install express để cài đặt express. chỉ "npm install" làm gì?
qinking126

Câu trả lời:


157

Nó nói rằng

 Cannot find module 'express'

Bạn đã cài đặt express chưa? Nếu chưa thì hãy chạy cái này.

 npm install express

Và chạy lại chương trình của bạn.


1
Điều này không khắc phục được sự cố trong trường hợp của tôi. npm install expresshiển thị lỗi này npm ERR! Error: UNKNOWN, symlink '../express/bin/express'. Có vẻ là một vấn đề sâu sắc hơn.
Sliq

Sử dụng sudo nếu bạn chưa sửa quyền thư mục của mình cho npm. Trong mọi trường hợp, "sudo npm install" là một lựa chọn tốt hơn.
Gaurav Gupta

Liên kết biểu tượng Lỗi thường xảy ra, nếu bạn đã cài đặt mọi thứ trên toàn cầu và vâng, liên kết biểu tượng bị hỏng. Cố gắng npm linktạo lại liên kết tương ứng ...
Frank Nocke

@Sliq Tôi đã thử với giải pháp của bạn nhưng tôi không thể giải quyết được vấn đề của mình, bạn có thể giúp tôi không?
VjyV

Đừng bỏ qua "Và chạy lại chương trình của bạn." Trong trường hợp của tôi, tôi đã phải khởi động lại quá trình trong của tôi process manager. Nó không tự khởi động lại.
Tadej

42

Sau khi bạn thực hiện express trong thiết bị đầu cuối của mình, hãy làm

 npm install

Để cài đặt tất cả các phụ thuộc.

Sau đó, bạn có thể thực hiện ứng dụng nút để chạy máy chủ.


7
Bạn nên chỉ ra rằng điều này yêu cầu một tệp danh sách gói tức là .json .. Và điều này không phải lúc nào cũng đúng.
Pogrindis

@VjyV trong cùng thư mục mà bạn có tệp nút .js của mình. Nhưng nó phải có tệp package.json trong thư mục để có thể cài đặt các phụ thuộc cần thiết.
Saurabh Rana

34

Kiểm tra xem bạn đã cài đặt expressmô-đun chưa. Nếu không, hãy sử dụng lệnh này:

npm install express

và nếu node_modulesthư mục của bạn ở một nơi khác, hãy đặt NODE_PATHbiến envirnment:

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

12
Đây là câu trả lời đúng, cho tất cả những người đăng những CTRL+C / CTRL+V npm installcâu trả lời này : bạn có thực sự nghĩ rằng có ai đó sẽ cố gắng chạy thứ gì đó mà không kiểm tra xem nó đã được cài đặt trước chưa? Nghiêm túc ...
Claudio Holanda

3
Chỉ thêm một chi tiết nhỏ: Bạn cần chạy lệnh install express trong thư mục của ứng dụng chứ không phải trong thư mục cài đặt Node.js hoặc thư mục npm trong AppData. Vì đó là sai lầm mà tôi đã mắc phải, vì tôi nghĩ rằng đó là một loại tiện ích bổ sung SDK nào đó.
Alex

29

 npm cài đặt - lưu nhanh   
Điều này đã hiệu quả với tôi, Chỉ cần chạy lại cài đặt express.js


11

npm install từ trong thư mục ứng dụng của bạn sẽ khắc phục được sự cố vì nó sẽ cài đặt mọi thứ cần thiết


5

Đang tìm một chuỗi cũ ở đây NHƯNG tôi cũng gặp lỗi này và tôi đã giải quyết bằng cách điều hướng đến thư mục mà NodeApp của tôi đang ở và đang chạy npm install -d


Bạn không chắc chắn lý do tại sao hoặc làm thế nào nó quan trọng nhưng điều này cài đặt nó trong devdependencies của bạn: docs.npmjs.com/cli/install
Guy Lowe

1
@GuyLowe -dlà gỡ lỗi cho npm, -Dlà phụ thuộc của nhà phát triển.
John Pavek

4

Trừ khi bạn đặt Node_PATH , tùy chọn khác duy nhất là cài đặt express trong thư mục ứng dụng, chẳng hạn như npm install express --save. Express có thể đã được cài đặt nhưng nodekhông thể tìm thấy nó vì một số lý do


Cái này phù hợp với tôi, tốt hơn hãy thực thi lệnh cài đặt trong cùng thư mục với tệp .js của bạn. Ngoài ra, bạn có thể chạy lệnh "npm init" để tạo tệp package.json để tránh các vấn đề khác.
emarshah

3

Bạn có mô-đun express của bạn nằm trong một thư mục khác với dự án của bạn. Đó có lẽ là vấn đề vì bạn đang cố gắng giải quyết require()tại địa phương. Hãy thử di chuyển mô-đun express của bạn từ / Users / feelexit / nvm / node_modules / express sang / Users / feelexit / WebstormProjects / learningnode / node_modules / express . Thông tin này có thể cung cấp cho bạn chi tiết hơn về cấu trúc tệp node_module.


2

nếu tệp chính của bạn được đặt tại /Users/feelexit/WebstormProjects/learnnode/node_modules/index.jsthì express cần được đặt tại /Users/feelexit/WebstormProjects/learnnode/node_modules/node_modulesvì nút luôn tìm kiếm các mô-đun trong ./node_modules(và thư mục bên trong của nó) khi đường dẫn không bắt đầu bằng ./hoặc /( thêm thông tin tại đây )

tôi nghĩ rằng bạn đã bỏ lỡ việc đặt bạn là tệp chính trong thư mục mô-đun


2

đối với trường hợp này, hãy chạy lệnh npm install express bằng cách sử dụng dấu nhắc cmd của bạn cho thư mục tương ứng nơi bạn muốn chạy chương trình. Ví dụ tôi muốn chạy chương trình mô-đun express server.js trong F: \ nodeSample. Vì vậy, hãy chạy "npm install express" trong thư mục cụ thể đó rồi chạy server.js


1

Chạy npm install express body-parser cookie-parser multer --savelệnh trong cùng một thư mục với tệp nodejs mã nguồn của bạn để giải quyết vấn đề này. P / s: kiểm tra thư mục của bạn sau khi chạy lệnh để hiểu thêm!


1

Trong một số trường hợp hiếm hoi, bộ nhớ cache npm có thể bị hỏng. Đối với tôi, những gì hiệu quả là:

npm cache clean --force

Nói chung, trình quản lý gói sẽ tự phát hiện tham nhũng và tự tìm nạp lại nên điều này thường không cần thiết. Tuy nhiên, trong trường hợp của tôi, Windows 10 bị lỗi một vài lần và tôi nghi ngờ điều này có thể xảy ra trong quá trình tìm nạp. Hy vọng nó sẽ giúp một ai đó!

Thông tin thêm: https://docs.npmjs.com/cli/cache


1

Tôi đã gặp phải một vấn đề tương tự và cuối cùng đó là vấn đề của một số phụ thuộc cũ đang làm rối tung máy chủ Heroku của tôi.

Trong khi ở thư mục dự án của tôi, tôi đã chạy:

npm uninstall
npm install

Tôi hy vọng nó sẽ giúp


0

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

Điều này xảy ra do thiếu quyền hoặc tệp bị hủy liên kết trong khi npm đang hoạt động.

Có nghĩa là, việc thực thi npmvới tư cách người dùng này không có đủ quyền đọc / ghi từ tệp, trong trường hợp này là package.json.

thử thêm sudotrước toàn bộ lệnh - nó sẽ giải quyết.

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

Mật khẩu sẽ là mật khẩu quản trị máy mac của bạn.

-gcờ sẽ cài đặt mô-đun này (express) trong ngữ cảnh chung của nút - nghĩa là nút sẽ / phải nhận ra expressmô-đun từ bên trong bất kỳ tệp js nào mà không cần phải cung cấp đường dẫn đầy đủ đến mô-đun đang được sử dụng.

Hi vọng điêu nay co ich!!


0

Tôi đã từng gặp vấn đề tương tự. Vấn đề của tôi là tôi phải thay đổi thư mục dự án Node.js trên dòng lệnh trước khi cài đặt express.

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

0

Tôi đoán rằng đây là môn học từ khóa học Phát triển Web của Colt Steele ... Tôi đang tìm kiếm câu trả lời tương tự như tại sao tôi cũng gặp phải lỗi đó .. Colt không nói vậy nhưng bạn lấy thư mục node_module và di chuyển vào thư mục mới mà bạn đang làm việc ... đó là những gì phù hợp với tôi.


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)

Đôi khi phiên bản không khớp với package.json Đã khắc phục sự cố bằng cách kiểm tra package.json sau đó sử dụng các lệnh sau: npm install body-parser@1.13.2 nó đã giải quyết được cho tôi.


0

Bạn đã thử chưa

npm install

Nếu bạn đặc biệt đang tìm kiếm chỉ cần express

npm install --save express
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.