jsonlu database sistemi
aşağıdaki kod sayesinde dosyayı oluşturabiliyorsunuz.
const Db = require("database-sistem");
const db = new Db({
path: `./database.json`,
seperator: ".",
spaces: 10
});
path yani yol kısmında istediğiniz konumu seçiyorsunuz.
const Db = require("database-sistem");
const db = new Db({
path: `./database/database.json`,
seperator: ".",
spaces: 10
});
gibi ama burada kullanacağınız klasörün olması gerekli, dosyayı ise kendisi oluşturuyor, dosyayı kendiniz oluşturmayınız.
db.set(`a`,`a`) // şeklinde yazarsanız
aşağıdaki sonuç elde edilir.
{
"a":"a"
}
// Diğer Örnek
db.set(`a.b`,`c`)
şeklinde olursa
{
"a": {
"b":"c"
}
}
şeklinde olur.
db.add(`a`,1)
{
"a": 1
}
bunun aynısını bir daha yaparsak, toplarsak yine 1 le
{
"a": 2
}
şeklinde olur.
db.subtract("a",1)
sonuç
{
"a": 1
}
şeklinde olur.
db.push("a","a")
db.push("a","b")
db.push("a","c")
sonuç
{
"a": ["a","b","c"]
}
aşağıdaki fonksiyonlardan önceki array
{
"a": ["a","b","c"]
}
// splice fonksiyonu
db.splice("a","b")
sonuç
{
"a": ["a","c"]
}
// pull fonksiyonu
db.pull("a","b")
sonuç
{
"a": ["a","c"]
}
console.log(db.has("a","a"))
sonuç
true
// yeni gelen includes fonksiyonu
console.log(db.includes("a","a"))
sonuç
true
console.log(db.fetch("a"))
sonuç
["a","c"]
aynı şey diğer set olarak ayarladığımız veriye bakarken de geçerli
console.log(db.get("a"))
sonuç
["a","c"]
console.log(db.size("a"))
sonuç
1
const Db = require("./app.js");
const db = new Db({
path: `./database.json`,
seperator: ".",
spaces: 10
});
const veri = {
username:"bob",
email:"bob@example.com",
}
db.push("users",veri);
const veri2 = {
username:"bila",
email:"bila@example.com",
}
db.push("users",veri2);
const userToUpdate = db.find("users", user => user.username === "bob");
console.log(userToUpdate)
sonuç
{ username: 'bob', email: 'bob@example.com' }
databasedeki hali ise aşağıdaki şekildedir
{
"users": [
{
"username": "bob",
"email": "bob@example.com"
},
{
"username": "bila",
"email": "bila@example.com"
}
]
}
const Db = require("./app.js");
const db = new Db({
path: `./database.json`,
seperator: ".",
spaces: 10
});
const veri = {
username:"bob",
email:"bob@example.com",
}
db.push("users",veri);
const veri2 = {
username:"bila",
email:"bila@example.com",
}
db.push("users",veri2);
const userToUpdate = db.find("users", user => user.username === "bob");
console.log(userToUpdate)
if (userToUpdate) {
const updatedUser = db.update("users", user => user.username === "bob", { email: "bobmarley@example.com", other: "deneme" });
console.log(updatedUser); // Güncellenmiş kullanıcı bilgisi
} else {
console.log("Kullanıcı bulunamadı.");
}
sonuç
{ username: 'bob', email: 'bob@example.com' }
{ username: 'bob', email: 'bobmarley@example.com', other: 'deneme' }
databasedeki hali ise aşağıdaki şekildedir
{
"users": [
{
"username": "bob",
"email": "bobmarley@example.com",
"other": "deneme"
},
{
"username": "bila",
"email": "bila@example.com"
}
]
}
aşağıdaki özellikler teknik bilgilerdir, lütfen bu bilgileri dikkatlice inceleyiniz.
const Db = require("database-sistem");
const db = new Db({
path: `./database/database.json`,
seperator: ".",
spaces: 10
});
db.set("aa.aa","a")
db.set("ab.ac","a")
db.add("ab.ae",3)
db.push("ab.ad","b")
sonuç
{
"aa": {
"aa": "a"
},
"ab": {
"ac": "a",
"ad": [
"b"
],
"ae": 3
}
}
Not: burada dosyayı çalıştırıp tekrardan kapattığınız var sayılıyor, eğer aynı dosya içerisinde veri değiştirilmeden aynı dosyayı gördüğü için eski değerden işlem yapacaktır.
bunu aşmanın yolları var tabi, yapacağınız işlem her neyse o işlem içinde dosyayı çekmek olacaktır.
gelelim discord.js(v14.7.1) de ile birlikte nasıl kullanılabilir.
aşağıda komutlar kısmındaki bir komut dosyasından örnek olarak atılmıştır, sizler farklı şekilde yapabilirsiniz.
// örnek komut
const discord = require("discord.js")
const config = require("../../config.json")
const { EmbedBuilder } = require('discord.js');
const Db = require('database-sistem')
exports.run = async(client, message, args) => {
const db = new Db({
path: `./database.json`,
seperator: ".",
spaces: 10
});
message.channel.send({content : "selam"})
db.add("a",1)
}
exports.help = {
name: "örnek", // Komutun İsmi
aliases: ["örnek"] // Komutun Diğer Kullanım örnekleri Array İçinde yapınız
}
siz her örnek komutunu çalıştırdığınızda chate selam yazacak ve ayrıca databasede bulunan "a" değerini 1 arttıracak, ayrıca database.json
isminde bir dosyanız da var.
eğer database.json isimli dosyayı açarsanız aşağıdaki görüntü karşınıza çıkacaktır.
{
"a": 1
}
siz derseniz bu databasedeki veriyi nasıl okuyup chate yazdırabilirim derseniz size bir örnek vereyim.
// örnek komut
const discord = require("discord.js")
const config = require("../../config.json")
// burada embed oluşturucusu
const { EmbedBuilder } = require('discord.js');
// databaseyi çağırıyoruz
const Db = require('database-sistem')
exports.run = async(client, message, args) => {
// burada databasenin bulunduğu dosyayı çağırıyoruz
const db = new Db({
path: `./database.json`,
seperator: ".",
spaces: 10
});
const exampleEmbed = new EmbedBuilder()
// embedin kenarındaki renk
.setColor("Random")
.setAuthor({ name : `${message.author.username}`, iconURL: `${message.author.displayAvatarURL({ dynamic: true, size: 1024 })}`})
.setThumbnail(message.author.displayAvatarURL({ dynamic: true, size: 1024 }))
.setDescription(`paranız ${db.get("a")} kadardır`)
message.channel.send({content : "selam", embeds:[exampleEmbed]})
}
exports.help = {
name: "test1", // Komutun İsmi
aliases: ["test1"] // Komutun Diğer Kullanım örnekleri Array İçinde yapınız
}
sonucu ise aşağıdaki görseldeki gibidir, sizler istediğiniz gibi ayarlayabilirsiniz.
Not: Bu özellikler dahalen geliştirme aşamasındadır. lütfen daha iyi özellikler için bekleyiniz.
- has fonksiyonu düzeltildi.
- pull fonksiyonu eklendi.
- find fonksiyonu eklendi.
- update fonksiyonu eklendi.
- has fonksiyonu geçici olarak kaldırıldı, lütfen alternatifini kullanın.
- includes fonksiyonu eklendi.
- bir web sayfası üzerinde çalışmalar yapılıyor.
- size fonksiyonu eklendi.
- bu sürümde readme sayfasındaki bilgiler arttırıldı.
- yeni özellik olan splice özelliği eklendi.
- örnekler eklendi.