Bir ortam değişkeni, bir işlemin içinde çalıştığı ortam hakkında bilgi sağlar. Sunucu bağlantı noktalarını ve veritabanı bağlantılarını yapılandırır, API anahtarları gibi hassas verileri gizler ve çok daha fazlasını yaparlar.

NestJS ortam değişkenlerini okuma yöntemi, NodeJS'nin standart dotenv paketinden farklıdır.

NestJS yapılandırma modülü, ortam değişkenlerinizi yalnızca birkaç adımda yönetmenize olanak tanır.

1. Adım: Bağımlılıkları Yükleme

NestJS, özel bir @nestjs/config paketini kullanan dotenv kaputun altında paket. Bu sıfır bağımlılık paketi, ortam değişkenlerini bir .env dosyalamak süreç.env. process.env nesnesi, uygulamanızın kullanımı için çalışma zamanında enjekte edilen global bir değişkendir.

NestJS yapılandırma paketini aşağıdakileri çalıştırarak yükleyin:

npm kurulumu @nestjs/config

NestJS yapılandırma paketi, uygulamaya bir yapılandırma modülü ve bir yapılandırma hizmeti sunarak çalışır. Yapılandırma modülü şunları belirtir: .env okumak için uygulamayı dosyalayın. Aynı zamanda, yapılandırma hizmeti içindeki bilgileri ortaya çıkarır. .env uygulamanın geri kalanına dosya.

instagram viewer

2. Adım: ENV Dosyaları Oluşturma

Ortam değişkenlerini bir dosyada saklamak, onlara herhangi bir dilden kolayca erişin, farklı işletim sistemlerinde. Bunları sürüm kontrolü yapabilirsiniz .env dosyalar, böylece proje taşınabilirliğini artırırlar ve hata ayıklama sorunlarını kolaylaştırabilirler.

.env dosyaları oluşturmaya yönelik NestJS yaklaşımı, resmi dotenv önerisinden farklıdır. dotenv belgelerine göre bir uygulamada birden fazla .env dosyası oluşturmamalısınız. NestJS, farklı adlara sahip birden çok .env dosyası oluşturmanıza olanak tanır.

İyi bir uygulama olarak, her zaman projenizin kök dizininde .env dosyaları oluşturmalı ve bunları .gitignore dosya.

Bir .env dosyası oluşturmanın özel bir yolu yoktur; bunları normal metin düzenleyicinizle oluşturup düzenlemeniz yeterlidir, ancak .env ile başlamaları gerekir. Örneğin, .env.geliştirme.

Adım 3: Yapılandırma Modülünü Ayarlama

Yapılandırma Modülünüzü global olarak kurmak için aşağıdaki adımı izleyin ve .env yollar:

  1. Projenizin kök modülünde (uygulama.modu.ts) dosya, içe aktarma ConfigModule itibaren @nestjs/config.
  2. Ekle ConfigModule senin için ithalat dizi ve çağrı Kök için bunun üzerine yöntem.
  3. Bir yapılandırma nesnesini şuraya iletin: Kök için yöntemi ile bir küresel mülk doğru. Bu seçenek, yapılandırmayı uygulamanızdaki diğer modüller aracılığıyla paylaşır, yani bir kereden fazla kurmanız gerekmeyecektir.
  4. Belirtiniz envDosyaYol yapılandırma nesnenizde. Bu özellik bir dize olabilir (eğer varsa .env dosya) veya tüm bilgilerinizi içeren bir dizi .env dosyalar ve yapılandırma modülüne hangi dosyaların aranacağını söyleyecektir.
// app.module.ts
@Modül({
ithalat: [
ConfigModule.forKök({
küresel: doğru,
envFilePath: '.env dosyanızın/dosyalarınızın adı/adları',
}),

Adım 4: Ortam Değişkenlerini Okumak için Yapılandırma Hizmetini Kullanma

Yapılandırma değerlerine erişmek için içe aktararak başlayın Yapılandırma Hizmeti itibaren @nestjs/config. içine enjekte sınıfın yapıcısı ilan ederek özel değişken ve atama Yapılandırma Hizmeti onun türü olarak.

Örneğin:

yapıcı(özel yapılandırma: ConfigService) {}

Bir değişkene erişmek için, almak üzerindeki yöntem Yapılandırma Hizmeti senin üzerinde özel değişken. Genel olarak ihtiyaç duyduğunuz veri türünü ve erişmek istediğiniz ortam değişkeninin adını iletin.

Örneğin:

const envVar = this.config.get<sicim>('ENV_VALUE');

bu Yapılandırma Hizmeti “ENV_VALUE” adında bir değer arar ve değerini döndürür.

Dikkat edin, eğer iki .env dosyalar, aynı özellik adını içerir, bunlardan ilki, envDosyaYol öncelik kazanacak.

Ortam Değişkenlerinin Önemi

Ortam değişkenleri, özellikle daha karmaşık uygulamalarda, bir programın önemli bir parçasıdır. Programınızın yapılandırmasını, anlaşılması kolay, ortak bir mekanizma aracılığıyla kontrol etmenize izin verirler.

Yapılandırmanın tüm yönlerini kontrol etmek için ortam değişkenlerini kullanabilirsiniz. Farklı veritabanı ayarlarından API anahtarları ve kimlik bilgileri gibi hassas verilere kadar, temel kaynak koduna dokunmadan yapılandırmayı değiştirmenize olanak tanır.