2012-03-17 36 views
5

Tôi đang làm rối tung với Node.js lần đầu tiên và quyết định tạo một ứng dụng đơn giản bằng Express. Tôi làm theo các hướng dẫn từ github trong một thư mục rỗng như vậy:Gặp lỗi khi chạy dự án Express cơ bản

npm install -g express 
express 
npm install -d 
node app.js 

Khi điều hướng đến localhost:3000 tôi nhận được lỗi sau:

Express 
500 Error: Cannot find module './lib/jade' 
at Function._resolveFilename (module.js:332:11) 
at Function._load (module.js:279:25) 
at Module.require (module.js:354:17) 
at require (module.js:370:17) 
at Object. (C:\dev\gravity_kata\node_modules\jade\index.js:4:5) 
at Module._compile (module.js:441:26) 
at Object..js (module.js:459:10) 
at Module.load (module.js:348:31) 
at Function._load (module.js:308:12) 
at Module.require (module.js:354:17) 

Khi nhìn dưới node_modules\jade\lib Tôi thấy tất cả các tập tin thư viện Jade, nhưng không có thư mục jade. Vì vậy, tôi tạo ra một thư mục dưới lib gọi là ngọc bích và di chuyển các tập tin thư viện ở đó và bây giờ ứng dụng mặc định của tôi hoạt động.

Bây giờ, khi tôi gần như không có kinh nghiệm với Node.js và Express, tôi chắc chắn tôi đã làm điều gì đó sai. Có ai có bất kỳ ý tưởng những gì đang xảy ra ở đây?

Edit:

Tôi lao vào mã Jade. Trong tệp index.js của Jade, nó yêu cầu lib\jade và tìm trong thư mục lib, không có tệp jade.js. Vâng, đó là vấn đề, nhưng tại sao tệp jade.js bị thiếu? Khi kéo Jade source từ npm, có tệp jade.js trong thư mục lib. Tôi đã sao chép thư mục lib từ nguồn được tải xuống vào mô-đun Jade cho dự án của tôi và nó hoạt động tốt ngay bây giờ.

Vì lý do nào đó, npm không kéo tệp jade.js xuống. Phiên bản trong tệp packages.json khớp với nguồn tôi đã kéo xuống, 0.21.0. Bất kỳ ai có ý tưởng về lý do tại sao điều này xảy ra?

+1

Dường như đó là sự cố hoặc sự cố rõ ràng. Hãy thử tìm hiểu mã số ... –

+0

Tôi đã chỉnh sửa câu trả lời của mình về những gì tôi tìm thấy sau khi tìm hiểu mã. – JChristian

+0

Tải xuống từ nguồn và trích xuất đã hoạt động cho tôi. Cảm ơn bạn đã chỉ ra tệp bị thiếu. Phải là một lỗi với NPM/Jade. – foobar

Trả lời

2

Đối với tôi, trên cửa sổ, phiên bản ngọc bích 0.22.0 đã khắc phục sự cố.

+0

Nó phải có được một lỗi trong ngọc bích, bởi vì phiên bản 0.22.0 cố định vấn đề cho tôi là tốt. – JChristian

2

nó có thể phải làm với thực tế là bạn đã cài đặt nhanh trên toàn cầu (-g), nhưng npm install -d được thực hiện cục bộ. cố gắng cài đặt cả hai trên toàn cầu, hoặc như tôi muốn, cả trong nước:

sudo npm uninstall express -g 
npm install express 
npm install jade (or npm install -d) 
+1

Cài đặt nhanh trên toàn cầu cho phép truy cập vào tệp thực thi. Tôi loại bỏ nhanh trên toàn cầu, nhưng thể hiện và ngọc bích đã được cài đặt tại địa phương. Tôi vẫn nhận được lỗi tương tự. – JChristian

11

cd vào thư mục dự án rõ ràng của bạn và chạy "NPM cài đặt", điều này sẽ cài đặt tất cả phụ thuộc

+0

Khi bạn nói thư mục dự án thể hiện, bạn có nghĩa là thư mục '/ node_modules/express' không? – JChristian

+0

bạn đang chạy Linux hoặc cửa sổ? phép nói rằng bạn tạo một dự án trên desktop của bạn sử dụng bày tỏ testproject sau đó cd testproject NPM cài đặt – gastonfartek

+0

im xin lỗi im không tốt với ý kiến, tôi sẽ lại viết rằng bình luận – gastonfartek

0

Thật chắc chắn rằng tất cả mô-đun require s là chính xác. Javascript là rất buồn cười về nói cho bạn biết những gì là thực sự sai. Hãy thử loại bỏ các dòng mẫu ngọc bích và xem những gì sẽ xảy ra sau đó.

0

Tôi chỉ tìm thấy vấn đề này với lỗi của mô-đun ngọc bích. Hình như thư mục ngọc bích không được tạo tự động (một số loại lỗi). Bây giờ tôi đã giải quyết điều này với ngọc bích cài đặt lại. Sau đó thư mục ngọc bích được tạo tự động. sử dụng npm gỡ cài đặt gulp-jade và sau đó cài đặt gulp-jade lần nữa

Các vấn đề liên quan