12 Eylül 2013 Perşembe

NodeJS & MongoDB - Modellerin Hazırlanması



Merhaba arkadaşlar, NodeJS & MongoDB serisine devam ediyoruz. Bir önceki dersimizde hafiften kod yazmaya başlamıştık. Bu derste ise projenin içinde kullanılacak olan modellerin nasıl oluşturulup kodlanacağından bahsedeceğim.



Bildiğiniz gibi bu ders serisini anlatırken basit bir blog örneği üzerinden gidiyorum. Blog içinde kullanılacak olan modeller ne olabilir? User, Blog, Comment. Sistemi kullanan kullanıcılar User modeli ile, kullanıcıların yazdığı blog yazıları Blog modeli ile, bu yazılara yazılan yorumlar da Comment modeli ile modellenebilir. Peki bu modelleri bizim projede ExpressJS'e nasıl tanıtabiliriz? mongoose... Kısaca mongoose un amacı, sistemde kullanılan dataların mongodb ye kaydedilebilecek şekilde modellenmesini sağlamak. İsterseniz ilk modelimiz olan User modelinden başlayalım.


Kod yükleniyor...


Yukarıda da görüldüğü gibi User modelini yarattık. Bu modeli kendi adıyla yani User.js olarak model klasörünün altına kaydettik. Modelle ilgili detaylı bilgileri kodun içinde yorumlardan görebilirsiniz. Şimdi gelelim Blog modeline. Blog modeli de aynı User modeli gibi şöyle olacak;



Kod yükleniyor...

Blog ve Comment modelini aynı dosya içinde tanımladık. Bize lazım olabilecek fonksiyonlardan bir tanesini de bu modele ekledik. Comment modelini Blog modelinin içine gömdük. Blog modelini JSON olarak düşünürseniz Comment modeli Blog modelinin içine gömülü şekilde olduğunu anlayacaksınız.

Blog örneğinde kullanılacak olan modeller bu kadar. Projenin herhangi bir yerinde gerekli dataları toplayıp bu modellerin alanlarına koyarsanız, elinizde mongodb ye kaydetmeye hazır obje olacaktır. Mesela, kayıt esnasında kayıt formundan aldığınız dataları User modeline koyup mongodb ye kaydedebilirsiniz. Ona da küçük bir örnek gösterecek olursak;


Kod yükleniyor...

Yorum satırlarına bakarak olayı net bir şekilde anlayabilirsiniz. Model oluşturulmasıyla ilgili benim anlatacaklarım bu kadar. Kafanıza takılan yerleri satır numarasını vererek yorum alanında sorabilirsiniz. 

Bir sonraki derste görüşmek üzere...

Hiç yorum yok:

Yorum Gönder