NodeJS Sqlite Bağlantısı Yapma

Herkese merhabalar, NodeJS derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde NodeJS ile Sqlite veritabanı bağlantısı yapmayı anlatacağım. Hadi başlayalım !
Öncelikle elbette bir tane NodeJS projesi oluşturmamız gerekiyor. Bunun için bir tane proje klasörü oluşturup terminal (Windows için CMD) ile oluşturduğumuz klasöre geçerek
npm init --yes
komutunu girmemiz yeterli. Proje oluşturmanın ardından Sqlite bağlantısı yapabilmek gerekli olan ve NodeJS kurulumu ile beraber gelmeyen sqlite3 paketini kurmamız gerekiyor. Bunun içinde yine terminalden
npm i sqlite3
komutunu girmemiz gerekiyor. Bu komutu girmemizin ardından NPM, sqlite3 paketini ve onun bağımlı olduğu paketleri indirip projeye ekleyerek kullanıma hazır hale getirmekte. Paket kurulumunun ardından index.js dosyamızı açarak artık kod yazmaya başlayabiliriz.
Tabiki paketi kullanabilmek için öncelikle sayfamızda çağırmamız gerekiyor. Bunun içinde sayfanın başına
const sqlite3 = require('sqlite3');
kod satırını yazmamız yeterli. Paketi sayfamızda çağırdığımıza göre artık Sqlite bağlantımızı yapacak asıl kodları yazabiliriz.
Öncelikle Sqlite nedir bunun hakkında kısacık bilgi vereyim, sonrasında yazacağımız kodlar havada kalmasın, bu kod nerden çıktı ne iş yapıyor gibi sorular kalmasın.
Sqlite, açık kaynak kodlu geliştirilen ve doğrudan localde ve uzak sunucu üzerinde de çalışabilen, kullanımı için herhangi bir sunucu kurulumu gerektirmeyen, doğrudan .db uzantılı dosyalar üzerinden yürüyen bir SQL tipidir. Özellikle mobil geliştiriciler tarafından doğrudan uygulama içine gömülebilmesi, küçük dosya boyutu ve hızlı olması sebebiyle tercih edilmekte. Fakat sadece mobil geliştiriciler tarafından kullanılacak diye bir şart yok. Siz örneğin NodeJS projenizde de kullanabilirsiniz. Doğrudan .db uzantılı bir dosya üzerinden kurulup kullanılabildiği için veritabanına bağlantı yapabilmek için elbette öncelikle .db uzantılı bir dosya oluşturmanız gerekiyor. Bağlantı bilgilerinde de oluşturduğunuz bu .db uzantılı dosyayı vermeniz yeterli oluyor ve bu şekilde veritabanı bağlantısı başarılı bir şekilde kurulmuş oluyor.
Sqlite hakkında bu kadar kısacık bir bilgi verdikten sonra artık NodeJS ile Sqlite bağlantısı yapabiliriz. Az öncede dediğim gibi bir tane .db uzantılı dosyamızın olması gerekiyor. İsterseniz bu dosyayı elle yada kodla oluşturabilirsiniz. Kodla oluşturmak için NodeJS ile beraber gelen fs modülünü kullanabilirsiniz (fs modülü hakkında detaylı bilgi için buraya tıklayabilirsiniz). Ben bu yazımda veritabanını hem kodla oluşturmayı, hemde elle oluşturmayı anlatacağım. Öncelikle elle oluşturmayı anlatayım.
NodeJS ile Sqlite bağlantısı kurmak için sqlite3 paketi altında bulunan Database() fonksiyonunu kullanıyoruz ve bu fonksiyon ile yeni bir sqlite3 nesnesi oluşturmuş oluyoruz. Yani fonksiyonu kullanabilmek için new anahtar kelimesini kullanacağız. Fonksiyon .db uzantılı dosyanın yolunu parametre olarak istiyor ve bu şekilde doğrudan ilgili dosyayı veritabanı o larak kullanabiliyoruz. Örneğin .db uzantılı dosyamızın yolunun C:/Users/Kullanıcı/Desktop/veritabanı.db olduğunu varsayalım. O zaman veritabanı bağlantı kodumuz şu şekilde olacaktır;
const baglanti = new sqlite3.Database('C:/Users/Kullanıcı/Desktop/veritabanı.db');
Artık bundan sonra baglanti değişkeni ile Sqlite işlemleri yapabileceğiz. Elle oluşturmanın dezavantajlarından biri ve en önemlisi örneğin Electronjs ile bir tane masaüstü otomasyon yaptımızı varsayalım ve bu otomasyon local bilgisayarda çalışacak yani internet erişimi olmayacak. Biz dinamik yani sabit dosya yolu verdiğimiz için ve bu yol kişiden kişiye değişebileceği için hata verecek ve uygulamamız çökecektir. Fakat .db uzantılı dosyayı biz kodla oluşturursak bu sorundan kurtulmuş olacağız. Yani veritabanı bağlantısı yapılmadan önce .db uzantılı dosyanın var olup olmadığını kontrol edip, yoksa oluşturursak bağlantı sorunsuz bir şekilde sağlanacaktır. .db uzantılı dosyayı elle oluşturduğumuz örnekteki dosyayı bu sefer kod ile kontrol edelim fakat kullanıcı yolu sabit olmasın. Çünkü az önceki verdiğim örnekte olduğu gibi Electronjs ile local çalışan bir otomasyonda kullanıcı yolu sürekli değişecektir. O yüzden öncelikle kullanıcı yolunu oradan da masaüstü yolunu bulup .db uzantılı dosyamız için yol oluşturalım ve kontrolünü sağlayalım.
NodeJS’de masaüstü yolunu bulabilmek için öncelikle kullanıcı yolunu bulmamız gerekiyor. Yani C:/Users/Kullanıcı yolundaki Kullanıcı kısmını bulmamız gerekiyor. Bunun içinde NodeJS kurulumu ile beraber gelen os paketini kullanacağız. Tabiki os paketinide sayfamızda çağırmamız gerekiyor ve bunun içinde sayfamızın başına
const os = require('os');
kod satırını ekledikten sonra
const masaustuYolu = os.homedir() + '/Desktop';
kod satırı ile bilgisayarın masaüstü yolunu bulabiliriz. Ardından .db uzantılı dosyamızın yolunu oluşturalım.
const dbYolu = masaustuYolu + '/database.db';
Ve artık dosya kontolünü yaparak, dosya yoksa oluşturalım.
if (fs.existsSync(dbYolu))
fs.writeFileSync(dbYolu, '');
Vee son olarak Sqlite bağlantısını yapalım.
const kodlaBaglanti = new sqlite3.Database(dbYolu);
Eveeet NodeJS ile Sqlite bağlantısı bu şekilde yapılmakta ve yazımızda buraya kadardı. Tüm NodeJS derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.