MongoDB veritabanına bağlanmak
Bu dersi takip edebilmek için MongoDB veritabanı kurulu olması gerekiyor.
MongoDB kurulum dersine bakabilirsiniz.
Kurulumdan sonra bir kaç kayıt eklediğinizden emin olunuz.
Öncelikle kaynak
dizininde bulunan ana.d
kütüğünü bir metin düzenleyici ile açalım.
emacs kaynak/ana.d
İçindeki kaynak kodu değiştirip, şunları girelim.
import vibe.http.server : İstek = HTTPServerRequest;
import vibe.http.server : Yanıt = HTTPServerResponse;
import vibe.http.server : sunucuyuBaşlat = listenHTTP;
import vibe.http.server : SunucuAyarları = HTTPServerSettings;
import vibe.core.log : bilgiVer = logInfo;
import vibe.http.router : Yönlendirici = URLRouter;
import vibe.db.mongo.mongo : bağlan = connectMongoDB;
import vibe.db.mongo.collection : name;
import vibe.core.core: çalıştır = runApplication;
import vibe.data.bson;
void günlük(İstek istek, Yanıt yanıt)
{
bilgiVer("Veritabanına bağlanıyorum...");
auto veritabanı = bağlan("127.0.0.1").getDatabase("kiraz");
auto kullanıcılar = veritabanı["kullanıcılar"];
bilgiVer("Veritabanını sorguluyorum...");
Bson sorgu = Bson(["şifre" : Bson("çokgizli")]);
auto sonuç = kullanıcılar.find(sorgu);
bilgiVer("Sonuçları gösteriyorum...");
foreach (i, kayıt; sonuç.byPair)
bilgiVer("Kayıt %d: %s", i, kayıt.toJson().toString());
yanıt.writeBody("İşlem başarılı");
}
void main()
{
auto yolAtayıcı = new Yönlendirici;
yolAtayıcı.get("/günlük", &günlük);
auto ayarlar = new SunucuAyarları;
ayarlar.port = 8080;
ayarlar.bindAddresses = ["::1", "127.0.0.1"];
sunucuyuBaşlat(ayarlar, yolAtayıcı);
bilgiVer("Lütfen tarayıcınızla http://127.0.0.1:8080/ adresini açınız.");
çalıştır();
}
Kiraz dizininin içinde iken dub
komutu ile uygulamayı derleyip, çalıştıralım.
dub
Tarayıcınızla http://localhost:8080/günlük adresini açtığınızda, işlemin başarılı olduğuna dair bir ileti görebilirsiniz.
Komut satırından uygulamanın günlük çıktısına bakarsanız yaptığımız sorguya uyan kayıtların gösterildiğini görebilirsiniz.
Geliştirdiğimiz uygulamada şifresi çok gizli olan kullanıcıları bulmaya çalışıyoruz.
Yol atayıcı gelen talepleri günlük adresine yönlendiriyor.
Yukarıdaki günlük
işlevinde auto veritabanı
ile başlayan kısımda veritabanı bağlantısı sağlanıyor.
Kiraz veritabanında oluşturduğumuz belge ağacına veritabanı["kullanıcılar"];
şeklinde erişebiliyoruz.
Bson aslında Json veri biçiminin ikili olarak saklanmasıdır.
Hatırlarsanız ilk oluşturduğumuz kayıt şuna benziyordu :
{
"_id" : 1,
"isim" : "Erdem",
"şifre" : "çokgizli"
}
Sorgu ile şifresi çokgizli olan kullanıcıları bulmaya çalışıyoruz.
Bu sorguyu çalıştırdıktan sonra dönen değeri auto sonuç
değişkenine atıyoruz.
foreach
kullanımına diğer başka programlama dillerinden aşinalık kazanmış olabilirsiniz.
Burada diğer programlama dillerinden farklı olarak sonuç.byPair
ifadesi ile bir çift değişkeni ekrana yazdırabiliyoruz.
Kayıtların Bson
biçiminde saklandığını ifade etmiştik.
Kayıtları ekrana yazdırmak için önce Json
, sonra da dizge biçimine çeviriyoruz.
kayıt.toJson().toString()
ifadesi tam olarak bunu yapıyor.
Uygulamanın kaynağını buradan indirebilirsiniz.
Eğer git kullanarak indirmek indirmek isterseniz
git clone https://codeberg.org/erdem/kiraz.git --branch Ders3
komutu ile bu dersi indirebilirsiniz.
Yorumlar