falsisdb
v2.3.2
Published
Falsisdb; Türkçe, hızlı, güvenilir, kullanışlı, açık kaynak kodlu, event ve yedekleme destekli, json ve yaml database modülü.
Downloads
56
Readme
Falsisdb
Falsisdb; Türkçe, hızlı, güvenilir, kullanışlı, açık kaynak kodlu, event ve yedekleme destekli, json ve yaml database modülü.
Kurulum
Modülü kurmak için öncelikle konsola aşağıdaki komutu yazmalısınız.
npm i falsisdb@latest
veya bunun yerine en en güncel sürümü github'dan çekin. (Hatalar olabilir.)
npm i "https://github.com/falsisdev/falsisdb.git#master"
Bunu yazdıktan sonra modülün indirilmesiniz bekleyin. Modül kurulunca main (ana)
dosyanıza aşağıdaki kodu ekleyin. Kodu en başa eklerseniz dosyanız düzenli olur.
Yedekleme Sistemi ve Daha Fazlası
Yedekleme sisteminin amacı, ana veri tabanı dosyasına herhangi bir zarar gelirse veri tabanını kolayca yedek dosyasında saklaması. Bunun üzerine Peki ya yedek dosyasına zarar gelirse? tarzı bir soru gelebilir. Bunun için yedek sistemine backupTime
ekledik. Örneğin veri tabanına 1 veri eklediğinizde veri anında yedeğe atılmıyor da ayarladığınız sayı kadar veri eklendiğinde yeni bir yedek oluşturup o zaman yedeği atıyor. Böylece yedek dosyası, ana veri tabanı dosyası kadar hareketli ve risk altında olmuyor.
Şimdi biraz kullanımından bahsedelim. Kullanımından Bahsetmeden Önce birkaç şey hatırlatmak istiyorum.
- Yedek Sistemindeki tüm ögeler ve nesneler isteğe bağlıdır.
- Yedek Sistemi aktif olduğunda,
falsisdb
klasöründebackupData.json
dosyası oluşacaktır. Bu dosyada kaç tane backup alındığı, 1 başlatma sürecinde kaç veri kaydedildiği (time
kısmı için kullanılıyor.) ve eğer 1 başlatma sürecinde kaydedilen veri sayısı tanımlanantime
değerine eşit değilse eşit olana kadar kaydedilen verilerin yedeği tutulur. Böylece proje kaç kere yeniden başlatılsa bile hiçbir şey sıfırlanmaz. Eğer bir veri önceden yedeklendiyse veya yedekleme sırasına konulduysa tekrar yedeklenmez veya yedekleme sırasına konulmaz. Bu bir hata değil, bilinçli yapılmış bir özelliktir. Ayrıca eğer bir veriyi veri tabanından silerseniz, bu veri yedek dosyasında bulunmaya devam eder. Böylece eğer sildiğiniz veriyi yanlışlıkla sildiyseniz veya veri kendiliğinden silindiyse yedekleme dosyasından tekrar alabilirsiniz.
const { JSONDatabase } = require("falsisdb");
const db = new JSONDatabase({
filePath: "BURAYA VERI TABANI DOSYASININ DOSYA KONUMU YAZILACAK", //isteğe bağlı
backup: { //isteğe bağlı
path: "BURAYA YEDEKLEME DOSYASININ DOSYA KONUMU YAZILACAK", //isteğe bağlı
time: 5 //BURAYA YEDEKLEMENIN KAÇ VERIDE BIR YAPILACAGI YAZILACAK VARSAYILAN = 5 //isteğe bağlı
},
eventInterval: 100 //BURAYA EVENTLERIN KAC MILISANIYEDE (MS) BIR KONTROL EDİLECEĞİ YAZILACAK VARSAYILAN = 100ms //isteğe bağlı
})
Not: { JSONDatabase }
kısmı veri tabanının türünü belirler. Bunu isteğe bağlı olarak { YAMLDatabase }
ile de değiştirebilirsiniz. Ancak bu değişiklik sonrasında filePath
ögesinin de uzantısını değiştirmeniz gerekir. Aksi takdirde bir hata ile karşılaşırsınız. Aynı şekilde new
'den sonraki kısım da {}
içerisindeki kısımla aynı olmalı.
Not: TypeScript
için de kullanım bu şekildedir.
filePath
ögesi isteğe bağlıdır. Unutmayın, dosya başına ./
konmalıdır! Proje Başlatıldığında Unexpected end of JSON input
hatasını alabilrisiniz. Bunun sebebi dosyaya {}
(suslü parantez) koymamanız. Dosyaya girip içerisine {}
yazın. Ve artık kullanmaya başlayabilirsiniz.
backup
nesnesi type
, path
ve time
ögelerini içerir.
backup.path
: Yedekleme Alınacak Dosyayı Tanımlar.
backup.time
: Yedeklemenin Kaç Veride Bir Yapılacağını Tanımlar.
eventInterval
: Eventlerin ne kadar sürede bir kontrol edileceğini tanımlar
Yukarıdaki Paragraftaki tüm ögeler ve nesneler isteğe bağlıdır. Eğer Yazılmazsa Aşağıdakiler Uygulanır.
Veri Tabanı Dosyası: Varsayılanı ./falsisdb/database.json
veya ./falsisdb/database.yaml
Yedekleme: Eğer hiçbir şey tanımlanmazsa yedekleme alınmaz. Ancak Aşağıdakilerden Herhangi Biri Bile Tanımlanırsa Varsayılanlar Aşağıdaki Gibi Olur.
Yedekleme Dosyası: Varsayılanı ./falsisdb/backup.json
veya ./falsisdb/backup.yaml
Yedekleme Aralığı: Varsayılanı 5
veride bir.
Event Interval: Varsayılan 100
milisaniyede bir.
Event Sistemi
- DataSet
dataSet eventi bir veri eklendiğinde tetiklenecek kodu tanımlamak için kullanılr.
db.on("dataSet", (data) => {
if(data.changed == true){
console.log(`📝 Veri Tabanında Bir Veri Değiştirildi\n- Veri İsmi: ${data.key}\n- Eski Değeri: ${data.oldValue}\n- Yeni Değeri: ${data.value}`)
}
console.log(data)
})
- DataDelete
dataDelete eventi bir veri silindiğinde tetiklenecek kodu tanımlamak için kullanılr.
db.on("dataDelete", (data) => {
console.log(`📝 Veri Tabanında Bir Veri Silindi\n- Veri İsmi: ${data.key}\n- Eski Değeri: ${data.value}`)
})
Geliştirme
Teşekkürler: lunexdev, berat141, aloima, iamashley0