NODE_ENV
là một biến môi trường được phổ biến bởi khung máy chủ web nhanh . Khi một ứng dụng nút được chạy, nó có thể kiểm tra giá trị của biến môi trường và thực hiện các việc khác nhau dựa trên giá trị. NODE_ENV
cụ thể được sử dụng (theo quy ước) để nêu rõ một môi trường cụ thể là môi trường sản xuất hay môi trường phát triển . Một trường hợp sử dụng phổ biến là chạy mã gỡ lỗi hoặc mã đăng nhập bổ sung nếu chạy trong môi trường phát triển.
Truy cập NODE_ENV
Bạn có thể sử dụng mã sau đây để tự truy cập vào biến môi trường để bạn có thể thực hiện kiểm tra và logic của riêng mình:
var environment = process.env.NODE_ENV
Hoặc thay thế bằng cách sử dụng express ' app.get('env')
( lưu ý: điều này mặc định là "development"
)
Xin lưu ý rằng nếu bạn chưa thiết lập rõ ràng NODE_ENV
cho môi trường của mình, thì nó sẽ như vậy undefined
.
Đặt NODE_ENV
Cách thực sự đặt biến môi trường thay đổi từ hệ điều hành sang hệ điều hành và cũng phụ thuộc vào thiết lập người dùng của bạn.
Nếu bạn muốn đặt biến môi trường là một lần, bạn có thể làm như vậy từ dòng lệnh:
- linux & mac :
export NODE_ENV=production
- cửa sổ :
$env:NODE_ENV = 'production'
Về lâu dài, bạn nên duy trì điều này để nó không bị hủy nếu bạn khởi động lại - thay vì liệt kê tất cả các phương pháp có thể để thực hiện việc này, tôi sẽ cho phép bạn tự tìm kiếm cách thực hiện điều đó!
Công ước đã ra lệnh rằng chỉ có hai giá trị bạn nên sử dụng cho NODE_ENV
, production
hoặc development
, tất cả chữ thường. Không có gì ngăn bạn thêm nhiều giá trị, nhưng có lẽ đó không phải là ý hay, vì tôi thấy rất nhiều loại mã này trong nhiều nút_modules mà tôi sử dụng:
var development = process.env.NODE_ENV !== 'production';
Lưu ý rằng đó là một ý tưởng thực sự tồi tệ khi cố gắng thiết lập NODE_ENV
từ bên trong một ứng dụng nút - nếu bạn thực hiện nó sẽ chỉ áp dụng cho quy trình mà nó được đặt , vì vậy mọi thứ có thể sẽ không hoạt động như bạn mong đợi. Đừng làm điều đó - bạn sẽ hối tiếc.
app.configure('development', ...)
hoặc "sản xuất" để chỉ cài đặt một số cài đặt nhất định cho môi trường phát triển hoặc sản xuất. Xem expressjs.com/api.html#app.configure