Dotenv nedir? Nasıl kullanılır? AR-GE Kulübü -Phoique

Phoique 7

Katılımcı Üye
14 Mar 2017
505
1
Manisa
Merhaba arkadaşlar, bugün node.js ile dotenv kullanacağız. Bilmeyenler için ufak bir tanım yapalım.

Dotenv Nedir?
Yazılan bir web projesinde kurup kullanacak kişiye hem kolaylık, hem de bazı değerleri kolayca tek dosyada toplamaya yarar. Projenin ana bölümüne .env adında yer alır. İçerisinde genellikle projenin çalışma portu, veritabanı adı, kullanıcı adı, şifresi gibi değişkenlerin bulunduğu yerdir.

Node üzerinden basit kullanımına bakalım.
Az çok ne tür bir problemi çözdüğünü anladığınızı varsayıyorum. Gelelim bunu nasıl node ile kullanacağımıza .env laravel ile kullanıldığını biliyorum. (Php ile uğraşmadığım için codeigniter ile kullanılıyor mu çok bilgim yok.) Python ile de büyük ihtimalle kullanılıyordur modül vardır mutlaka. Neyse node ile kullanmaya devam edelim.


Kod:
[COLOR="DeepSkyBlue"]const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hi!');
});

app.listen(3000);[/COLOR]

Basit bir express uygulaması yazıp bunu ayağa kaldıralım. Hi! mesajını http://localhost:3000 adresine girdiğinize görmüş olmanız gerekiyor. Şimdi ise dotenv modülünü kuralım.

Global olarak kurmak için:
Kod:
[COLOR="DeepSkyBlue"][B]npm install -g dotenv[/B][/COLOR]

O an ki projeniz için dependencies olarak kurmak için ise:
Kod:
[COLOR="DeepSkyBlue"][B]npm install --save dotenv[/B][/COLOR]

Kurduktan sonra ise çağıralım.

Kod:
[COLOR="DeepSkyBlue"][B]require('dotenv').config();[/B][/COLOR]

Şimdi projemizin ana dizinine .env adında bir dosya oluşturalım. Bu dosyanın içine yazacağız. (Her klasörden erişilebiliyor bu değerlere.) Şimdi .env dosyamıza bu uygulamayı başlattığımız portu yazalım.

.env dosyasının içine:
Kod:
[COLOR="DeepSkyBlue"][B]PORT = 3000[/B][/COLOR]

yazdıktan sonra node ile ayağa kaldırdığımız projede ufak bir değişiklik yapalım.

Kod:
[COLOR="DeepSkyBlue"][B]const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hi!');
});

app.listen(process.env.PORT);[/B][/COLOR]

Tekrar uygulamayı ayağa kaldırdığınızda 3000 portu ile çalıştığını göreceksiniz. Peki şimdi mesaj kısmını da .env içinde belirtelim.

.env içine:
Kod:
[COLOR="DeepSkyBlue"][B]MESSAGE = Hello World .ENV[/B][/COLOR]

Kodumuzda ufak bir düzenleme yapalım:
Kod:
[COLOR="DeepSkyBlue"][B]res.send(process.env.MESSAGE)[/B][/COLOR];

Tekrar koşturalım projemizi, göreceksiniz ki "Hello World .ENV" yazacaktır. Tabi ki böyle kullanmayın .env da ben anlatmak için kullanıyorum. :) Her değişikliğinizde tekrar tekrar projeyi koşturmak ile uğraşmak istemiyorsanız nodemon kurun.

BfYJSB.png


Normalde konuya resim ekleyemeyecektim ama okuyucu sıkılmasın diye şöyle resim bıraktım. Umarım dotenv mantığını kavramışsınızdır. Node.js ile kullanmak buna örnektir. Önemli olan mantığını kavrayıp niçin kullanmak ve tür sorunları çözmeyi anlamaktır.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.