14 Temmuz 2013 Pazar

NodeJS & MongoDB - Proje Yapısının Ayarlanması

Merhaba arkadaşlar, NodeJS & MongoDB derslerinin ikincisine hemen başlayalım. Bir önceki dersi şuradan inceleyebilir ya da bu dersi okumaya devam edebilirsiniz. Bu yazıda bir önceki derste kurulum ve ayarları yapılmış olan projemize biraz daha somutluk kazandıracağız.

Önceki dersimizde package.json adında bir dosya oluşturup içinde express.js modülünün bağımlılık ayarlarını yazmıştık ve sonra npm install komutu ile express.js modülünü indirmiştik. Bu derste proje için gerekli olan dosya yapısını oluşturarak derse devam edeceğiz.

Projenin dosya yapısı için daha önce yazdığım şu makaleye göz atabilirsiniz. 

Projenin dosya ve klasörlerini adım adım inceleyecek olursak;


  • app.js : Projemizin ana dosyası. Ana dosyadan kastım, bütün modüllerin, modellerin, controller ların yüklenip konfigüre edildiği dosya.
  • package.json : Paket bağımlılıklarını belirten dosya.
  • public : Bu klasörde prokemizin statik dosyalarını tutacağız. Bu javascript, css, resim, ... olabilir.
  • controller : Projemizin controller larının tutulduğu klasör
  • model : Prokedeki her bir objenin modellenip saklandığı klasör. Biz bu derste örnek bir blog uygulaması yapacağız ve örnek olarak User modeli verilebilir.
  • views : Projedeki view dosyalarının tutulduğu klasör. Biz Jade ile yazdığımız dosyaları burada tutacağız.
  • lib : Burada ise, projede sıkça kullandığımız fonksiyonlara yer vereceğiz. Bu  klasördeki dosyaları helper gibi düşünebilirsiniz .
  • config : Projemizdeki ayarların tutulduğu yer. 
Dosya yapısının son aşağıdaki gibi olacaktır;




















Şimdi gelelim bu klasördeki dosyaların işlevlerine;


  • config
    • development.json : Burdaki dosya adını siz kendiniz belirleyebilirsiniz. Ama bu ismin sistemdeki ortam değişkeniyle uyuştuğuna emin olun.
  • contoller
    • SiteController.js : Projedeki temel sayfalar için tanımlanan fonksiyonların bulunduğu klasördür. Mesela; anasayfa, hakkında, iletişim gibi temel sayfaların fonksiyonları burada yer alır
    • BlogController.js : Blog ile ilgili işlem fonksiyonlarının tutulduğu controller burasıdır. Mesela; yeni blog yarat, blog görüntüle, ... gibi
    • UserController.js : Kullanıcı işlemlerinin bulunduğu controller. Mesela; kullanıcı profili görüntüle, login, logout, register, gibi fonksiyonlar örnek olabilir
  • lib
    • utils.js : Projede lazım olan helper fonksiyonları içerir. Örnek; database bağlantısı kurma, ...
    • validator.js : Model kısmında belirli validasyonlar için kullanılan fonksiyonlarını burda tanumlayabiliriz. Mesela; kullanıcı adı en az 6, en fazla 8 olabilir gibi işlemler burada tanımlanabilir.
  • models
    • User.js : Sistemde kayıtlı kullanıcıların bilgilerinin modellendiği model dosyadır ve kullanıcının temel bilgilerinin başlıklarını tutar. username, password, gibi.
    • Blog.js : Blog objesinin model bilgisini tutan dosyadır. blog başlığı, blog detayı, yaratılış tarihi gibi bilgiler bu model de belirlenir.
  • public
    • css : Projenin css dosyaları bu klasördedir
    • js : Projede kullanılan javascript dosyaları burada yer alır
    • img : Projede kullanılan resimler burada yer alır.
  • views
    • layout.jade : Projenin temel şablonu bu view dosyasında yer alır.
    • header.jade : Sayfanın başlık kısmının jade kodlarını içerir.
    • footer.jade : Sayfa altındaki copyright, link gibi objelerin yer verildiği sayfadır.
    • blog-detail.jade : Blog detay sayfasını için yazdığımız view burada yer alır.
    • blog-list.jade : Bütün blogları listelemek için jade kodlarının yer aldığı dosyadır
    • blog-new.jade : Adından da anlaşıldığı üzere yeni blog yaratmak için kullanılan view.
Proje hiyerarşik klasör yapısnı ve içindeki dosyalrın ne amaçla kullanacağımızı anlatmaya çalıştım umarım anlaşılır olmuştur.

Bir sonraki dersimizde, proje için gerekli olan ayar dosyalarını hazırlayıp modelleri oluşturacağız. Sonraki derste görüşmek üzere...

Hiç yorum yok:

Yorum Gönder