Sử dụng Mô-đun cấu hình NestJS để quản lý các biến môi trường

Một biến môi trường cung cấp thông tin về môi trường mà một quy trình đang chạy. Chúng định cấu hình các cổng máy chủ và kết nối cơ sở dữ liệu, ẩn dữ liệu nhạy cảm như khóa API, v.v.
Cách NestJS đọc các biến môi trường khác với gói dotenv tiêu chuẩn của NodeJS.
Mô-đun cấu hình NestJS cho phép bạn quản lý các biến môi trường của mình chỉ trong một vài bước.
Mục Lục
Bước 1: Cài đặt phụ thuộc
NestJS cung cấp một @ nestjs / config gói sử dụng dotenv gói dưới mui xe. Gói không phụ thuộc này tải các biến môi trường từ một .env nộp vào process.env. Đối tượng process.env là một biến toàn cục được đưa vào trong thời gian chạy để ứng dụng của bạn sử dụng.
Cài đặt gói cấu hình NestJS bằng cách chạy:
npm install @nestjs/config
Gói cấu hình NestJS hoạt động bằng cách hiển thị mô-đun cấu hình và dịch vụ cấu hình cho ứng dụng. Mô-đun cấu hình chỉ định .env nộp đơn để đọc. Đồng thời, dịch vụ cấu hình hiển thị thông tin bên trong .env nộp vào phần còn lại của ứng dụng.
Bước 2: Tạo tệp ENV
Việc lưu trữ các biến môi trường trong một tệp cho phép bạn truy cập chúng dễ dàng từ bất kỳ ngôn ngữ nào, trên các hệ điều hành khác nhau. Bạn có thể kiểm soát phiên bản này .env các tệp, vì vậy chúng làm tăng tính di động của dự án và có thể giảm bớt các tai ương.
Cách tiếp cận NestJS để tạo tệp .env khác với đề xuất dotenv chính thức. Theo tài liệu dotenv, bạn không nên tạo nhiều hơn một tệp .env trong một ứng dụng. NestJS cho phép bạn tạo nhiều tệp .env với các tên khác nhau.
Như một phương pháp hay, bạn nên luôn tạo các tệp .env trong thư mục gốc của dự án và đưa chúng vào .gitignore tập tin.
Không có cách đặc biệt nào để tạo tệp .env — chỉ cần tạo và chỉnh sửa chúng bằng trình soạn thảo văn bản thông thường của bạn — nhưng chúng phải bắt đầu bằng .env. Ví dụ, .env.development.
Bước 3: Thiết lập mô-đun cấu hình
Thực hiện theo bước bên dưới để thiết lập Mô-đun cấu hình của bạn trên toàn cầu và chỉ định .env đường dẫn:
- Trong mô-đun gốc của dự án của bạn (app.modue.ts) tệp, nhập ConfigModule từ @ nestjs / config.
- cộng ConfigModule cho bạn hàng nhập khẩu mảng và gọi forRoot phương pháp trên đó.
- Chuyển một đối tượng cấu hình đến forRoot phương pháp, với một isGlobal tài sản để thật. Tùy chọn này chia sẻ cấu hình thông qua các mô-đun khác trong ứng dụng của bạn, có nghĩa là bạn sẽ không phải thiết lập nó nhiều lần.
- Chỉ định của bạn envFilePath trong đối tượng cấu hình của bạn. Thuộc tính này có thể là một chuỗi (nếu bạn có .env tệp) hoặc một mảng chứa tất cả .env tệp và sẽ cho mô-đun cấu hình biết tệp nào cần tìm.
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
envFilePath: 'Name(s) of your .env file(s)',
}),
Bước 4: Sử dụng dịch vụ cấu hình để đọc các biến môi trường
Để truy cập các giá trị cấu hình, hãy bắt đầu bằng cách nhập ConfigService từ @ nestjs / config. Đưa nó vào hàm tạo của lớp bằng cách khai báo riêng biến và gán ConfigService như loại của nó.
Ví dụ:
constructor(private config: ConfigService) {}
Để truy cập một biến, hãy gọi lấy phương pháp trên ConfigService về bạn riêng Biến đổi. Chuyển cho nó kiểu dữ liệu bạn yêu cầu làm kiểu chung và tên của biến môi trường bạn muốn truy cập.
Ví dụ:
const envVar = this.config.get<string>('ENV_VALUE');
Các ConfigService tìm kiếm một giá trị có tên “ENV_VALUE” và trả về giá trị của nó.
Lưu ý rằng nếu hai .env các tệp chứa cùng tên thuộc tính, tên thuộc tính đầu tiên được chỉ định trong envFilePath sẽ được ưu tiên.
Tầm quan trọng của các biến môi trường
Các biến môi trường là một phần thiết yếu của chương trình, đặc biệt là trong các ứng dụng phức tạp hơn. Chúng cho phép bạn kiểm soát cấu hình chương trình của mình thông qua một cơ chế phổ biến, dễ hiểu.
Bạn có thể sử dụng các biến môi trường để kiểm soát tất cả các khía cạnh của cấu hình. Từ các cài đặt cơ sở dữ liệu khác nhau đến dữ liệu nhạy cảm như khóa API và thông tin đăng nhập, chúng cho phép bạn thay đổi cấu hình mà không cần chạm vào mã nguồn cơ bản.