Node.js MongoDB Bağlantısı

Node.js MongoDB Bağlantısı

Hepinize merhaba dostlarım :). Bu yazımda ise sizlere node js programlama dilinde özellikle sıklıkla kullanılan bir veri tabanı olan mongodb ye bağlanma işleminden bahsedeceğim. Özellikle büyük projelerde sıklıkla kullanılan ve linkedin,onedio gibi büyük sitelerin büyük veriler işlediği durumlarda hem hız, hem de büyük veriler arka planda dönüyor. Bu yüzde zaten node.js ile yazılıyor :). İşte ben de bunu ele alarak sizlerin gelişmesinde katkı sağlamak ve node.js programlama diline başlamış olanlar için bir veri tabanı bağlantısı (mongodb) göstermek istiyorum :). Heyecanınızın gittikçe arttığının farkındayım :). O halde sözümü daha fazla uzatmadan hemen konuya girişimizi yapalım :)

Proje Ortamının Kurulumu

Eveeet  :). Artık yavaştan yavaştan proje ortamımızı kuralım (bilmeyen dostlarım merak ediyorsa buradan ulaşabilir :). Ben bu yazımda kurulumundan tekrar bahsedeceğim) :). Öncelikle bir klasör oluşturalım ve ismine "mongoose-nodejs" diyelim :). Daha sonra proje dosyamıza gelip

npm init

komutumuzu yazalım. Bu koddan sonra karşımıza gelecek olan birkaç soru vardır :). İlk olarak

package name: (mongoose-nodejs)

şeklinde bir soru gelecektir. Yani paket dosyamızın isminin ne olacağını söylüyor :). Eğer enter tuşuna basarsak default olarak "mongoose-nodejs" ismini yazdıracaktır. Burayı enter tuşuna basarak rahatlıkla geçebiliriz. Daha sonrasında

version: (1.0.0)

şeklinde bize projemizin versiyonunu değiştirmek isteyip istemediğimizi soruyor :). Burası pek ayarlanmaz dostlarım :). Enter tuşuna basıp geçebiliriz :). Daha sonrasında ise

description: 

şeklinde karşımıza bir açıklama kısmı çıkıyor. Zorunlu bir alan değildir. Bize sadece bu projenin açıklamasını falan soruyor. Bu kısmı da enter tuşuna basarak geçebiliriz :). Daha sonrasında ise

entry point: (index.js)

şeklinde bir soru soruyor :). Diyor ki "Projeniz İçin Giriş Noktanız Ne Olsun ? (eğer boş bırakıp enter tuşuna basarsanız default olarak index.js ayarlıcam)" uyarısını veriyor. Bu kısımda ek biri ayarlamaya ihtiyacımız yok :). Enter tuşuna basarak geçişimizi yapabiliriz :). Ve daha sonra karşımıza çıkacak olan soru

test command:

sorusudur :). Yani projeyi test etmek için hangi komutu ayarlayayım diyor. Şimdilik bunun da pek bir zorunluluğu yok bizim için enter tuşuna basıp geçişimizi yapalım :). Daha sonra bizi karşılayacak diğer soru ise

git repository:

şeklinde karşımıza gelecek olan ve projemizin hangi github repository'sine bağlayacağımızı bize söyleyen sorudur :). Şimdilik buna da gerek yok :). Hemen bunu da enter deyip geçelim

keywords:

şeklinde ekranımıza bir soru geliyor. Burada projemizle ilgili anahtar kelimeler varsa onları girebileceğimizi söylüyor :). Zorunlu bir alan değildir burası da :) Enter tuşuna basıp gidebiliriz. Daha sonrasında 

license: (MIT)

şeklinde projemizin lisansını belirtmemiz bekleniyor. Node.js tarafından burası varsayılan olarak MIT olduğu için hiçbir ayarlama yapmamıza gerek yoktur :). Enter tuşuna basıp ilerleyebiliriz :). Ve son olarak karşımıza aşağıdaki gibi bir çıktı gelecektir

About to write to C:\Users\mfati\OneDrive\Masaüstü\mongoose-nodejs\package.json:

{
  "name": "mongoose-nodejs",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "MFS",
  "license": "MIT"
}


Is this OK? (yes)

şeklinde ekranımıza bir çıktı verecektir dostlarım :). Burada da diyor ki: "Dostum ben senin için bilgileri hazırladım :). Her şey tamam mıdır ?" diye soru soruyor. Biz tamamdır her şey normal diyerek enter tuşuna basıp artıkk kurulum aşamasını sonlandırabiliriz :). Kurulumu artık tamamladık :). Şimdi ise gelelim diğer aşamamıza :)

Mongoose Kurulumu

Şimdi ise geldik artık işin en önemli kısmına :). Dostlarım node.js üzerinde mongo db'ye bağlanmamızda karşımıza çıkan ve işlerimizi ileriki aşamalarda (crud işlemler vs olsun) çok kolaylaştıran mongoose paketini kurmaya :). Öncelikle geliyoruz terminalimizi açıyoruz ve

npm install --save mongoose@4.12.4

şeklinde komutumuzu yazıp enter tuşuna basıyoruz :). Npm bizim için mongoose paketini gelip projemize yüklüyor. Bunun kontrolünü yapmak için geliyoruz package.json dosyasına ve

{
  "name": "mongoose-nodejs",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "MFS",
  "license": "MIT",
  "dependencies": {
    "mongoose": "^4.12.4"
  }
}

şeklinde görüldüğü gibi dependencies altına mongoose paketimizin kurulduğunu görüyoruz :). Şimdi ise artık gelelim bağlantı işlemine

MongoDB Bağlantı İşlemi

Geldik artık mongoose kurulumunu yaptığımıza göre artık MongoDB ye bağlanma işlemine :). Öncelikle gelip connection.js isimli bir dosya oluşturalım ve ilk olarak

const mongoose = require('mongoose')

şeklinde projemize yüklediğimiz mongoose modülünü kullanacağımızı istiyoruz. Bu komutumuzu yazdıktan sonra MongoDB üzerinden örnek bir database oluşturuyoruz :). Ben bu uygulamada kullanacağımız database ismine "mongoose-nodejs" ismini verdim :). Daha sonrasında ise geliyoruz ve aşağıdaki komutumuzu yazıyoruz

mongoose.connect("mongodb://127.0.0.1:27017/mongoose-nodejs",{useMongoClient : true},function(err,db){
    if(err)
        throw err  // ekrana hata bastır
    else
        console.log("Bağlandım")  // ekrana bağlantı yapıldığını bastır
})

şimdiii biraz karmaşıklık yaşamışsınızdır ama hiç gözünüzü korkutmayın :). Burada mongoose değişkenimize export edilen mongoose modülünün içerisindeki fonksiyonlardan olan connect() fonksiyonu ile mongodb bağlantı işlemini gerçekleştireceğiz. Öncelikle connect() methoduna bakacak olursak içerisine 3 adet parametre alıyor

  • 1. Parametre: MongoDB Bağlantı adresi/veri_tabani_ismi (Localde olduğumuz için ve veri tabanımızın ismi mongoose-nodejs olduğu için "mongodb://127.0.0.1:27017/mongoose-nodejs" şeklinde yazdık) (zorunlu)
  • 2. Parametre: Burada bir obje alıyor. İçerisine biz bağlantı işleminde bir mongo istemcisi kullanmasını gerekli kıldık. Yazmazsak sorun olur mu diye soracaksanız hayır sorun olmaz :) Lakin
(node:20220) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or 
`createConnection()`. See http://mongoosejs.com/docs/connections.html#use-mongo-client

şeklinde bir çıktı verecektir. Yani diyor ki "Dostum mongo istemcisi kullanmanı tavsiye ederim :)" şeklinde bir uyarı veriyor. Biz de ileriki zamanlarda da hata çıkarmasın karşımıza diye bu kodu kullandık :).

  • 3. Parametre: Son olarak bağlantı işlemini yaptığımızda bize callback fonksiyon döndüğü için bunu da yazmamız lazım :). Bu callback fonksiyon içerisine iki adet parametre alıyor. Birincisi err yani herhangi bir hata oluştuğunda bize geri dönecek olan sonuç, diğeri ise veri tabanı işlemleri yapmamızda yardımcı olan db sonucudur :)

şimdi ise artık bu parametrelerin ne işe yaradığını da anladığımıza göre gelelim artık uygulamamızı çalıştırmaya :). Terminalimizi açalım ve

node connection.js

şeklinde komutumuzu yazalım :). Daha sonra terminalimize baktığımızda bize

Bağlandım

yazısını yazacaktır :). MongoDB ye başarılı bir şekilde bağlandık :)


Eveeeet dostlarım bu yazımda node.js üzerinde mongoose modülünü kurup MongoDB ye bağlantı işleminin nasıl sağlandığından sizlere dilim döndüğünce basit ve anlaşılır şekilde anlatmaya çalıştım. Umarım faydalı olmuşumdur. Eksik veya hatalı bilgi aktarımı yapmışsam benimle iletişime geçmekten çekinmeyin :). Konu başlarda biraz karmaşık veya zor gelebilir anlıyorum :). Bu aşamada sizlerden yapmanızı istediğim şey her yazımda da dediğim gibi "İstikrarlı ve Azimli Olmalısınız, Bolca Pratik Yapmalısınız :)". Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır :)

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıLaravel Route İşlemleri
Sonraki YazıJavascript This Kullanımı
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz