mongoose etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
mongoose etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
16 Eylül 2013 Pazartesi
NodeJS & MongoDB - Controller İçinde Model Kullanımı
Hiç yorum yok:
Gönderen
Unknown
at
Pazartesi, Eylül 16, 2013
Etiketler
express
,
express örnek proje
,
mongoDB
,
mongoose
,
nodejs mongodb serisi
Hepinize selamlar... Önceki dersimizde projemiz için gerekli olan modelleri hazırlamıştık. Şimdi hazırladığımız modellerin projenin controller kısmında nasıl kullanacağımızı sizlere anlatmaya çalışacağım.
12 Eylül 2013 Perşembe
NodeJS & MongoDB - Modellerin Hazırlanması
Hiç yorum yok:
Gönderen
Unknown
at
Perşembe, Eylül 12, 2013
Etiketler
express
,
express örnek proje
,
mongoDB
,
mongoose
,
nodejs mongodb serisi
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.
20 Ağustos 2013 Salı
NodeJS & MongoDB - Kod Yazmaya Başlayalım!
Hiç yorum yok:
Gönderen
Unknown
at
Salı, Ağustos 20, 2013
Etiketler
mongoDB
,
mongoose
,
node js
,
nodejs mongodb serisi
27 Ağustos 2012 Pazartesi
Mongoose Nedir, Mongoose,Mongo DB NodeJS kullanıımı
Mongoose MongoDB üzerinde çalışan esnek, şema bazlı, zengin özellikleriyle geliştiriciye kullanım kolaylığı sağlayan bir ODM(Object Document Mapper) yapısı.
İlişkisel veri tabanları ile çalışıpta, java platformunda hibernate, .net platformunda Entity Framework ORM (Object Relational Mapping) çatılarını bilmeyen yoktur. En azından ben öyle olmasını umut ediyorum.
Mongoose ise ORM çatılarının sağladığı kolaylıkları bize mongoDB tarafında sağlayan bir araç.
JSON nesneleri ile çalışmamızı, bu nesneler üzerinden CRUD işlemleri gerçekleştirmemize olanak sağlayan, kısıtlamaları(constraints) ve varsayılan değerleri belirlememizi kolaylaştıran, hesaplatılmış alanlar(calculated fields) tanımlamamıza imkan veren Mongoose MongoDB ile uygulama geliştirmeyi çok daha akıcı ve kolay bir hale getiriyor.
Daha önce mongodb kurulumundan bahsetmiştik. Yazının kalanını takip edebilmeniz için sisteminizde mongoDB veritabanı uygulaması kurulu olmalıdır. Kurulu değilse linki takip ederek kurulum işlemini gerçekleştirebilirsiniz.
WebMatrix üzerinden yeni bir NodeJS uygulaması açalım. Komut istemcisinden projemizin olduğu dizine geldikten sonra sırasıyla şu komutu çalıştıralım.
npm install
Kurulumlar tamamlandıktan sonra mongoose yapısını kullanarak işlem yapmaya başlayabiliriz.İlk olarak
mongoDB ile bir bağlantı oluşturalım.
var mongoose = require('mongoose') , db = mongoose.createConnection('localhost', 'kisi');
Görüldüğü üzere localhost üzerinden çalışan mongoDB veritabanı
uygulamasının kisi veri tabanına bağlanmak istiyorum. İlişkisel veritabanlarının aksine böyle bir veri tabanını
oluşturmam veya hazır olması gerekmiyor.
Bu bağlantıyı kullanarak yaptığım ilk insert işleminde "kisi" veritabanı mongodb tarafından oluşturulacak
ve insert işlemi gerçekleştirilecek.
Bağlantımızı oluşturduktan ve başarı ile bağlantı kurduktan sonra, kullanmak istediğimiz nesnemiz için bir şema oluşturalım. Hemen hemen her proje de bir kişi yapısının olacağını düşünerek örnek nesnemizi kişi nesnesi olarak seçtim. Kişi nesnesinin sahip olmasını istediğimiz özellikleri belirleyelim ve şemamızı oluşturalım.
var kisiSchema = new mongoose.Schema({ name: String, surname: String, email: String, age: { type: Number, min: 18, max: 100 } }); var Kisi = db.model('Kisi', kisiSchema);
Gördüğümüz gibi şema içerisinde kişini adı, soyadı, email adresi, yaşı gibi özelliklerimiz mevcut.Daha önce de bahsettiğimiz gibi şema yapıları içerisinde kısıtlamalar belirleyebiliyoruz.
Yaş alanı için belirlediğimiz min ve max kısıtlamaları bu değer aralığı dışında bir veri kaydı yapılmaya çalışıldığında
hata dönmesine sebep olacaktır.
Şemamızın davranışlarını belirlemek için şema içerisinde metodlar tanımlayarak bazı davranışları geliştirebiliriz.
Örneğin: kişi şeması içerisine adı ve soyadı bilgisini formatlanmış tek bir alan olarak getiren bir metod ekleyelim.
Tüm işlemleri yaparken veri tabanı ile henüz bir işlem yapmadık.Şimdi yeni bir kişi nesnesi oluşturup
bu nesneyi veri tabanımıza kayıt edelim. Bu işlem için server.js içerisine "kisiEkle" istemi geldiğinde
çalışacak bir get metodu ekleyelim.Bu metod yapılan istem karşılığında "kisi" veri tabanına yeni bir kayıt ekeyecek,
işlem başarılıysa ekrana "kayit başarılı" mesajı dönerken hata alırsa aldığı hatayı yazdıracak.
app.get('/kisiEkle', function(req, res) { var kisi = new Kisi({ name: 'Ertuğrul', surname: 'Taş', email: 'ertugrul@nodejstr.com', age: 25 }); kisi.save(function(err) { if(err) // TODO handle the error res.send(err); else res.send("kayit başarılı"); }); });
Şimdi de "Kisi" şemasını kullanarak veri tabanına eklediğimiz kişileri listeleyecek bir get metodu yazalım.
Gördüğümüz gibi şema yapısı ile bu işlem bir kaç satır koddan ibaret.app.get('/list', function(req, res) { Kisi.find(function(err, kisiler) { res.send(kisiler) }); });
Kısıtlamalarımızın çalışıp çalışmadığını görmek için "kisiEkle" isteminde yer alan yaş alanın "15" olarak değiştirip istem yapalım. Kısıtlamadan kaynaklı aldığımız hata mesajının görüntülendiğini göreceğiz.
Node v0.8.6 - Git
express@3.0.0rc3 node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie@0.0.4
├── commander@0.6.1
├── crc@0.2.0
├── debug@0.7.0
├── mkdirp@0.3.3
├── send@0.0.3 (mime@1.2.6)
└── connect@2.4.3 (bytes@0.1.0, pause@0.0.1, qs@0.4.2, formidable@1.0.11)
mongodb@1.1.4 node_modules\mongodb
└── bson@0.1.1
mongoose@3.0.3 node_modules\mongoose
├── hooks@0.2.1
└── ms@0.1.0
Kaydol:
Kayıtlar
(Atom)


