Nội dung bài viết
Video học lập trình mỗi ngày
Ứng dụng đôi khi lưu trữ các biến môi trường (environment) dưới dạng constant trong code của team. Điều đó dễ hiểu vì sao .env phải nghiêm ngặt về sự tách biệt giữa code và environment.
Với phiên bản 20.6.0 được phát hành gần đây , Node.js hiện đã tích hợp sẵn tính năng hỗ trợ cho .env
các tệp. Giờ đây, bạn có thể tải các biến môi trường từ một .env
tệp process.env
vào ứng dụng Node.js của mình hoàn toàn không cần phụ thuộc vào một require
nào nữa. Việc tải một .env
tập tin giờ đây đơn giản như sau:
node --env-file .env
Nhưng trước tiên nếu bạn là dev mới thì nên hiểu vì sao phải sử dụng .env
.env là gì? Sao lại tách biệt
Để đơn giản hiểu câu nói trên thì như thế này. Code thì không thay đổi trong các lần deploy (dev, product, test..), nhưng các lần triển khai thì cấu hình thay đổi đáng kể
.
Vì vậy 12 nguyên tắc thiết kế ứng dụng cũng nói về khía cạnh này. Vậy sử dụng sao cho hợp lý thì đọc thêm phần dưới đây.
Nhớ 3 cách upgrade node.js version trước khi đọc tiếp...
Sử dụng .env với 3 cách
Trước đây lập trình viên sử dụng nodejs thì sẽ có những cách sau để triển khai .env
và lấy các tham số như.
~ BLOG=anonystick.com YOUTUBE=tipsjavascript node test.js
Thì trong code. sẽ output:
console.log(process.env.BLOG, process.env.YOUTUBE)
// anonystick.com tipsjavascript
Nhược điểm nếu nhiều tham số thì sao, lúc đó cần một thư viên npm đó là dotenv
. Thì sử dụng như sau, đương phiên phải tạo file .env
. Có nhiều trường hợp rất phức tạp, nên xem tại Node.js backend Ecommerce.
require('dotenv').config()
console.log(process.env.BLOG, process.env.YOUTUBE)
// anonystick.com tipsjavascript
Nhưng giờ đây với phiên bản 20.6.0 được phát hành gần đây , Node.js hiện đã tích hợp sẵn tính năng hỗ trợ cho .env
các file thì chỉ cần như sau.
node --env-file .env test.js
Tôi đã chờ tính năng này rất lâu của Node.js ... Vậy thôi. À nếu nhiều file .env. Ví dụ chúng ta có dự án
.env
.env.development
.env.test
Thì sao, thì hãy xem video này