dotenv kütüphanesi

JavaScript Dotenv Kütüphanesi

Gizli belgeler önemlidir ve gözönünde bulunmamalıdır. Bunun gibi bir uygulama geliştirirken de bazı bilgileri / değişkenler gizlenmek zorunda kalabilir. Genelde bu tip değişkenleri kullanmak için .env gibi dosyalar kullanıyoruz. Peki .env dosyasını Node uygulamalarında nasıl kullanacağız?

Dotenv Nedir?

Dotenv .env dosyası içerisinde oluşturulan değişkenleri process.env nesnesine otomatik aktarmak için geliştirilmiş olan ve herhangi bir bağımlılığı olmayan bir JavaScript kütüphanesidir. Bazen ayarlar için ve bazen de gizlilik için .env dosyasında sakladığımız bilgileri alır ve Node (express js vs.) uygulamalarında process.env nesnesi altında taşır. Böylelikle process.env üzerinden istediğimiz gibi tanımladığımız değişkenlere ulaşabiliriz.

Kurulum

Dotenv kurulumu diğer npm kütüphaneleri gibi oldukça basittir. Yapmanız gereken komut satırından

npm install dotenv --save

komutunu vermektir. Tabii olarak bu kurulumu yapabilmeniz için sisteminizde Node JS ve dolayısı ile npm modulü kurulu olmalıdır.

**NOT: ** Geliştiricisi tarafından dotenv kütüphanesinin yerel (local) olarak kurulması tavsiye ediliyor.

Kullanımı

Kurulumu kadar kullanımı da olduça basit. İlk olarak uygulamanın kök dizininde .env isminde bir dosya oluşturuyoruz. Sonrasında ortam değişkenlerine (environment) eklemek istediğimiz değişkenleri bu dosya .env dosyasına ekliyoruz. Örnek bir env dosyası aşağıdadır.

APP_PORT=5000
APP_DB_URL=http://localhost:27000
APP_DB_USER_NAME=db-user
APP_DB_USER_PASS=12345
APP_USER_DB_NAME=deneme

.env dosyası oluşturulduktan sonra uygulamamıza dotenv kütüphanesini import ediyoruz.

const dotenv = require('dotenv');

veya ES6 sözdizimini kullanıyorsanız

import * as dotenv from 'dotenv';

İmport işleminden sonra yapmamız gereken dotenv.config() şeklinde ilk kurulumu yapmak. Bu işlem bittiğinde artık .env dosyasındaki değişkenler process.env altında ulaşılabilir olacaktır.

Şimdi port numarasını ekrana yazıralım.

console.log(process.env.PORT);

Bu kadar basit. İstediğimiz yerden bu değişkenlere ulaşabiliriz.

**NOT: ** Ortam değişkenleri sunucu başlatıldığı zaman yüklenir ve sonrasında değişmezler. Eğer bir ortam değişkenini .env dosyası üzerinde değiştirirseniz uygulanması için sunucuyu yeniden çalıştırmanız gerekir.

Sık Sorulan Sorular

Neden .env dosyasındaki değişkenler başarılı bir şekilde yüklen miyor?

.env* dosyası içerisindeki değişkenlerin process.env* içerisine yüklenmemesinin genel nedeni .env dosyasının yanlış yerde oluşturulmasıdır. Bu konuya dikkat etmek gerekir. Uygulamanın kök dizininde oluşturulması gereklidir.

Bu gibi durumlarda hata mesajlarını görmek için debug modunu kullanabilirsiniz. Bunun için

const dotenv = required('dotenv');

dotenv.config({debug: true});

şeklinde çalıştırmanız yeterli olacaktır.

.env dosyasını commit (git üzerinden) etmeli miyim?

Bunu tavsiye etmiyoruz. Çünkü .env üzerinde genellikle veritabanı şifreleri gibi özel bilgiler saklanır. Eğer bunu commit ederseniz başkaları tarafından da görünür olacaktır.

React Env Kullanımı yazımızda React JS uygulamalarında ortam değişkenlerini nasıl kullanacağımızı inceliyoruz.

Sonuç

.env dosyası ile değişkenleri tutmak için kullanabileceğiniz güzel bir JavaScript kütüphanesi arıyorsanız dotenvi tercih edebilirsiniz. Kullanımı kolay ve başka bir kütüphane bağımlılığı bulunmuyor.

Sizin de tavsiye node js için tavsiye edeceğiniz yardımcı kütüphaneler var mı?

“JavaScript Dotenv Kütüphanesi” için 2 yorum

  1. Bir sorum olacak : .env dosyamızdan veri çekebiliyoruz, peki yaptığımız bir değişikliği .env dosyasına geri kaydedemezmiyiz ?

    örn : ‘value_1’ isimli bir değişkenin değerini .env içinde nasıl değiştirebiliriz ?

    1. Evet mümkün. Sonuç olarak .env sadece bir dosya ve okumak ve yazmak mümkün. Bunun için Node Js fs modülü kullanılabilir. Eğer sadece ekleme yapılacaksa


      const fs = require('fs');

      fs.appendFile(".env", "USER_NAME=berat\n", (err) => err && console.log(err));

      şeklinde eklenebilir. Eğer düzenleme yapacaksa benze şekilde fs modülü kullanılabilir. Örnek bir çalışma şu adreste bulunuyor.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir