2014-04-12 17 views
7

Tôi đã cài đặt nhanh, và nó chỉ làm việc tốt:Node.js: thể hiện không hoạt động?

... 
npm http 200 https://registry.npmjs.org/send/-/send-0.1.4.tgz 
npm http GET https://registry.npmjs.org/fresh/0.2.0 
npm http GET https://registry.npmjs.org/range-parser/0.0.4 
npm http 304 https://registry.npmjs.org/fresh/0.2.0 
npm http GET https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz 
npm http 304 https://registry.npmjs.org/range-parser/0.0.4 
npm http GET https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz 
npm http 200 https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz 
npm http 200 https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz 
[email protected] /usr/local/lib/node_modules/express 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] ([email protected]) 
├── [email protected] ([email protected]) 
├── [email protected] ([email protected], [email protected]) 
└── [email protected] ([email protected]) 

Nhưng sau đó tôi làm:

express testapp 
-bash: express: command not found 

Đó là nếu rõ ràng là không được cài đặt. Có chuyện gì thế?

Chỉ cần thông tin, tôi có OSX nếu điều đó có khác biệt gì không?

+0

bạn đã sử dụng -g khi bạn cài đặt? – duncan

+0

Đã thử với -g và không có nó. Với sudo và không có nó. – R0b0tn1k

+0

Sẽ không hoạt động nếu không có sudo ... – R0b0tn1k

Trả lời

22

Phiên bản mới của Express (4.0) không có thư mục bin. Bạn phải cài đặt express-generator để có được chức năng thiết lập.

Express 4.0 thực hiện các thay đổi đáng kể. Cụ thể, di chuyển phần giữa và người trợ giúp vào các mô-đun bên ngoài.

Nếu bạn cần chuẩn bị và chạy ngay lập tức, bạn nên cài đặt Express 3 và sau đó tìm hiểu cách chạy Express 4 khi bạn có nhiều thời gian hơn.

Trước tiên, hãy đảm bảo bạn có ./node_modules/.bin trong $ PATH của mình. Sau đó ...

npm install "[email protected]" 
express 

Hoặc nếu bạn có thời gian để tìm hiểu sự khác biệt trong Express 4 thì bạn có thể thiết lập và chạy bằng cách cài đặt express-generator.

npm install express-generator 
express 

QUAN TRỌNG: đảm bảo bạn có ./node_modules/.bin trong vỏ biến $ PATH của bạn. Các tệp thực thi trong các mô-đun Nút được liên kết trong thư mục ./node_modules/.bin. Có điều đó trong đường dẫn của bạn làm cho nó dễ dàng để chạy những tập tin thực thi mà không cần gõ toàn bộ con đường và không thêm chúng trên toàn cầu. Thêm chúng trên toàn cầu là một ý tưởng tồi nếu bạn làm việc với nhiều dự án và cần duy trì khả năng tương thích ngược với các dự án cũ.

TIP: Bạn có thể tìm thấy list of Express middlewares and helpers on Github.

+0

Noooo, không, nó vẫn không hoạt động! Lệnh được thực hiện tốt, ngay cả khi không có sudo, nhưng khi tôi gõ testapp tôi vẫn nhận được lệnh không tìm thấy ... – R0b0tn1k

+0

Xin lỗi vì bộ phim, đang kéo tóc ra ... – R0b0tn1k

+1

Đảm bảo bạn có './node_modules/. bin' trong $ PATH của bạn. – Daniel

5

Đây là cách tôi làm cho ứng dụng tốc hành của tôi hoạt động. đầu tiên tôi chạy

npm install -g express-generator 

Sau đó, tôi tạo ra ứng dụng của tôi với

express app_name 

đâu app_name rõ ràng là tên của ứng dụng của bạn.

Sau đó, tôi đã cài đặt các phụ thuộc.

cd app_name && npm install 

Sau đó, để chạy các ứng dụng tôi đã làm

DEBUG=app_name ./bin/www 

Các nhắc nhở đã được tạo ra bởi hệ thống và bạn có thể sao chép và dán chúng.Sau đó, bạn truy cập

http://localhost:3000/ 

Đây là ứng dụng của tôi làm việc tại địa phương

enter image description here

+0

Làm theo các bước tương tự, nhưng ứng dụng không chạy. Nó nói rằng 'require ('../ app')' bên trong './Bin/www' không thành công. Tôi không hiểu tại sao nó không hoạt động. – IcyFlame

+0

Điều này shit đang làm việc. – DarthVader

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