KynuxDB, Node.js uygulamaları için esnek ve kullanımı kolay bir veri depolama modülüdür. Farklı depolama adaptörlerini destekler.
- Kolay Kullanım: Basit ve anlaşılır API.
- Çoklu Adaptör Desteği: JSON (varsayılan), YAML, LocalStorage (web) ve MongoDB adaptörleri.
- Esnek Veri Yapıları: Nesneler, diziler, sayılar ve string'ler ile çalışabilme.
- Dot Notation Desteği: İç içe geçmiş verilere kolay erişim (
'user.profile.name'
). - Yapılandırma Seçenekleri: Dosya/klasör adı, okunabilirlik formatı gibi ayarlar.
- Veri İçe Aktarma: Diğer kaynaklardan (örneğin quick.db) veri taşıma imkanı.
- JSON (Varsayılan): Verileri
.json
dosyasında saklar. - YAML: Verileri
.yaml
dosyasında saklar (yaml
paketi gerektirir). - LocalStorage: Verileri tarayıcının LocalStorage'ında saklar (Web ortamı için).
- MongoDB: Verileri MongoDB veritabanında saklar (
mongoose
vedeasync
paketleri gerektirir).
npm install kynuxdb
Gerekli adaptörler için ek paketleri kurmayı unutmayın:
- YAML için:
npm install yaml
- MongoDB için:
npm install mongoose deasync
const db = require('kynuxdb');
// Veri Ayarlama
db.set('user.name', 'kynuxdev');
db.set('user.projects', ['kynuxdb']);
console.log(db.get('user.name')); // Çıktı: kynuxdev
// Veri Alma
console.log(db.get('user'));
// Çıktı: { name: 'kynuxdev', projects: [ 'kynuxdb' ] }
console.log(db.fetch('user.projects')); // Çıktı: [ 'kynuxdb' ]
// Veri Kontrolü
console.log(db.has('user.name')); // Çıktı: true
// Sayı Ekleme/Çıkarma
db.set('counter', 10);
db.add('counter', 5); // counter şimdi 15
db.subtract('counter', 3); // counter şimdi 12
console.log(db.get('counter')); // Çıktı: 12
// Diziye Ekleme/Çıkarma
db.push('user.projects', 'new-project');
console.log(db.get('user.projects')); // Çıktı: [ 'kynuxdb', 'new-project' ]
db.unpush('user.projects', 'kynuxdb');
console.log(db.get('user.projects')); // Çıktı: [ 'new-project' ]
// Veri Silme
db.delete('counter');
console.log(db.has('counter')); // Çıktı: false
// Tüm Verileri Alma
console.log(db.all());
// Tüm Verileri Silme
// db.deleteAll(); // Dikkatli kullanın!
JSON (Varsayılan)
const db = require('kynuxdb');
// Ekstra yapılandırma gerekmez
db.set('message', 'JSON\'dan Merhaba!');
YAML
const db = require('kynuxdb');
db.setAdapter('yamldb'); // YAML adaptörünü kullan
db.set('message', 'YAML\'dan Merhaba!');
LocalStorage (Web Ortamı)
// Tarayıcı ortamında çalıştığını varsayalım
const db = require('kynuxdb');
db.setAdapter('localstorage');
db.set('message', 'LocalStorage\'dan Merhaba!');
MongoDB
const db = require('kynuxdb');
db.setAdapter('mongo', {
url: 'MONGODB_CONNECTION_URL_BURAYA', // MongoDB bağlantı adresiniz
schema: 'KoleksiyonAdı' // Opsiyonel, varsayılan: 'KynuxDB'
});
db.set('message', 'MongoDB\'den Merhaba!');
const db = require('kynuxdb');
// JSON/YAML dosyasını okunabilir yap (girintileme ekler)
db.setReadable(true);
// Silme işleminden sonra boş nesneleri otomatik kaldır
db.setNoBlankData(true);
// Özel klasör/dosya adları ayarla (JSON/YAML için)
db.setFolder('verilerim');
db.setFile('uygulamaVerisi'); // verilerim/uygulamaVerisi.json (veya .yaml) oluşturur
// Mesajlar için dil ayarla (varsayılan: 'en')
db.setLanguage('tr');
const db = require('kynuxdb');
const quickdb = require('quick.db'); // Örnek kaynak
// Başka bir kaynaktan (örneğin quick.db) veri içe aktar
db.importDataFrom(quickdb);
console.log('Veri içe aktarma tamamlandı!');
setAdapter(adapterName, options)
: Veritabanı adaptörünü ayarlar.setLanguage(lang)
: Hata mesajları için dili ayarlar ('en' veya 'tr').setReadable(boolean)
: Dosya adaptörleri için okunabilir formatlamayı etkinleştirir/devre dışı bırakır.setNoBlankData(boolean)
: Boş nesnelerin otomatik kaldırılmasını etkinleştirir/devre dışı bırakır.setFolder(folderName)
: Dosya adaptörleri için klasör adını ayarlar.setFile(fileName)
: Dosya adaptörleri için dosya adını (uzantısız) ayarlar.set(key, value)
: Bir anahtar için değer ayarlar.get(key)
,fetch(key)
: Bir anahtarın değerini alır.has(key)
: Bir anahtarın var olup olmadığını kontrol eder.delete(key)
: Bir anahtar-değer çiftini siler.add(key, number)
: Mevcut sayısal değere bir sayı ekler veya yoksa/sayısal değilse ayarlar.subtract(key, number)
: Mevcut sayısal değerden bir sayı çıkarır.push(key, value)
: Bir diziye değer ekler.unpush(key, value)
: Bir diziden belirli bir değeri kaldırır.delByPriority(key, index)
: Dizi elemanını indeksine göre siler (1 tabanlı).setByPriority(key, value, index)
: Dizi elemanını indeksine göre ayarlar/günceller (1 tabanlı).all()
: Veritabanındaki tüm verileri alır.deleteAll()
: Veritabanındaki tüm verileri siler.importDataFrom(sourceDB)
: Başka bir uyumlu veritabanı kaynağından veri içe aktarır.
Katkılarınızı bekliyoruz! Lütfen GitHub üzerinden issue açmaktan veya pull request göndermekten çekinmeyin.
Sorularınız veya yardıma ihtiyacınız olursa Discord sunucusuna katılabilirsiniz.
Bu proje MIT Lisansı altında lisanslanmıştır - detaylar için LICENSE dosyasına bakın.