2013-01-31 43 views
35

Lệnh tôi chạy trên máy chủ của tôi để bắt đầu ứng dụng nút của tôi là:Node.js mãi mãi với môi trường biến

sudo IS_PROD=1 node app.js 

tôi đã mãi mãi cài đặt nhưng dường như không thể vượt qua trong các biến môi trường.

sudo IS_PROD=1 forever node app.js 

Dường như không làm được điều này. Tôi đã thử một số loại này. Làm thế nào để thực hiện lệnh này thành công hoặc vĩnh viễn thiết lập biến môi trường?

Trả lời

77

Trước hết bạn nên bỏ qua điều node trong lệnh bạn, không nên ở đó, bạn sẽ không thể thực hiện điều đó. tự động khởi động tập lệnh của bạn bằng cách sử dụng . Thay vào đó bạn nên làm như thế này;

sudo IS_PROD=1 forever app.js 

Có thể bạn, thay vì bắt đầu máy chủ của bạn ở nền trước, sẽ muốn khởi động máy chủ của bạn làm daemon. ví dụ.

sudo IS_PROD=1 forever start app.js 

Điều này sẽ tạo ra một quá trình nền sẽ xem ứng dụng nút của bạn và khởi động lại khi nó thoát. Để biết thêm thông tin, xem readme.

Cả hai phương pháp này đều giữ nguyên biến môi trường, giống như khi bạn chỉ sử dụng node.

+6

Trình gỡ xuống có thể giải thích tại sao không? – Mattias

+1

Tôi đã có một câu hỏi nhỏ, như tôi giả định này env var được bảo quản trên mỗi máy chủ khởi động lại được thực hiện bởi mãi mãi, tôi bằng cách nào đó có thể vượt qua một biến khác nhau cho trường hợp khởi động lại, không khởi động đầu tiên. Tôi chỉ muốn làm một số filewritings trên khởi động đầu tiên (Uglifying) và hơn không lặp lại nó khi khởi động lại. –

+0

Đúng. Đó là vấn đề của tôi. Tôi chỉ đơn giản là không nhập 'bắt đầu'. * WRONG *: 'NODE_ENV =" sản xuất "mãi mãi bin/www'. * CHỈNH SỬA *: 'NODE_ENV =" sản xuất "mãi mãi bắt đầu bin/www' – Green

12

app.js:

console.log(process.env.IS_PROD); 

Sử dụng node (v0.8.21)

$ node app.js 
undefined 

$ IS_PROD=1 node app.js 
1 

$ sudo IS_PROD=1 node app.js 
1 

Sử dụng forever (v0.10.0)

$ forever app.js 
undefined 

$ IS_PROD=1 forever app.js 
1 

$ sudo IS_PROD=1 forever app.js 
1 

Documentation:

process.env

Một đối tượng chứa môi trường người dùng. Xem môi trường (7).

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