Database atau basis data adalah kumpulan data yang dikelola sedemikian rupa berdasarkan ketentuan tertentu yang saling berhubungan sehingga mudah dalam pengelolaannya. Melalui pengelolaan tersebut pengguna dapat memperoleh kemudahan dalam mencari informasi, menyimpan informasi dan membuang informasi. Seiring berjalannya waktu, pengelolaan database memang cukup rumit bagi orang-orang yang baru terjun kedunia pemrograman. Untuk itu saya membuat module ini agar orang-orang bisa mudah mengelola database mereka dengan fungsi yang mutakhir. Mudah-mudahan bermanfaat dan jangan lupa tekan Star untuk membantu saya terus berkembang...
untuk anda yang ingin mencoba perngalaman terbaik menggunakan module ini, silahkan ikuti step berikut ini :
git clone https://github.com/jefripunza/advance-json-database
npm install
buka file test.js dan ikuti perintah selanjutnya (indonesian language)
node test
// or
npm start
Tidak terlalu rumit untuk inisial awal, cukup copy saja file connection.js nya kedalam project anda lalu di import dan langsung bisa digunakan
_id = primary key (string|int)
_create_at = kapan dibuat (timestamp)
_modified_at = kapan terakhir dirubah (timestamp)
_modified_history = history modifikasi data (array)
_deleted_at = menghapus sementara data dari list (tidak permanen)
_SEO = untuk keperluan SEO (integer)
const path = require("path");
const Database = require("path/to/connection");
// file path json, if not exist ? auto create file json
const file_path_db = path.join(__dirname, "test.txt"); // test.txt akan otomatis menjadi test.json
// for debug
const defaule_array = [
{
nama: "Jefri Herdi Triyanto",
kelas: "webdev",
hobi: "ngoding",
},
{
nama: "Jack Unch Paijo",
kelas: "mlongo",
hobi: "mancing",
},
];
// request argument :
// file_path_db = nama file (dir_path + name) dan variabel database
// default_value = nilai awal jika file database belum ada
// generate = membuat _id baru di setiap add data (default : true), true ? generateRandomString : integer auto increments
// Standar init (default)
const database = new Database(file_path_db);
// Standar init + default value (only array)
const database = new Database(file_path_db, defaule_array);
// Standar init + default value (only array) + generate
const database = new Database(file_path_db, defaule_array, true);
// if you want to multiply the table data then make another file connection
const database_user = new Database(file_path_db_user);
const database_post = new Database(file_path_db_post);
// request argument :
// new_data = (array)
database.add(new_data, result => {
console.log(result);
});
console.log(database.read());
console.log(database.readAll());
// request argument :
// select_data = single _id ? (string|int) : (object) # key => match value
// single _id (string|int)
console.log(database.one(key_id));
// multi select (object) # key => match value
console.log(database.one({
name: value,
}));
// ketika merubah maka akan menambahkan 2 meta :
// _modified_at = waktu merubah (timestamp)
// _modified_history = data sebelumnya (array)
// request argument :
// select _id = _id (string|int)
// new_data_object = new data => key => new value
database.update(key_id, {
description: Database.generateRandomString(30), // function extra to rendom string with length
}, result => {
console.log(result);
});
// request argument :
// select _id = _id (string|int)
database.delete(key_id, result => {
console.log(result);
});
// request argument :
// select _id = _id (string|int)
// select key = key yang ada didalam data (array)
database.deleteKey(key_id, [
"_id", // tidak akan terhapus
"id",
"price",
], result => {
console.log(result);
});
// require multiple true (min 3) (for accept secure)
database.clearAllData(true, true, true, result => {
console.log(result);
});
console.log(database.length());
// only displays data that has been temporarily deleted
console.log(database.trash());
// request argument :
// select key (object) = pilih key yang value nya ingin di cari
// keterangan :
// nilai paling atas adalah score tertinggi dari pencarian
// atau jika menggunakan addon SEO maka yang paling atas adalah data SEO
// meta result :
// time = waktu mencari data pada database (second)
// score = nilai pencarian dari isi data (select key -> value)
// result = list data dari score terbaik sampai terendah
// percentage = nilai rekap dari setiap key yang di select
// data = real data
// for test
const keyword = "and or on for in is woman";
// execute
const result = database.search({
description: keyword,
title: keyword,
category: keyword,
});
// default result
console.log(result);
// normal result
console.log(result.result.map(data => {
return data.data
}));
// request argument :
// show = berapa data yang ingin ditampilkan (int)
// page = sekarang dihalaman berapa (int)
// button_page = jumlah alinyemen button (auto alinyemen jika data diakhir) (int)
// ex : jika nilainya 2 = [1] - [2] - [center] - [1] - [2]
// : jika nilainya 1 = [1] - [center] - [1]
// meta pagination :
// min = nilai terkecil yang ditampilkan
// max = nilai terbesar yang ditampilkan
// page = halaman sekarang
// button = tombol pagination (auto generate)
// totalRow = total dari semua data
// row = list data
console.log(database.pagination(show, page, button_page));
// request argument :
// select _id = _id (string|int)
// nilai SEO = (only integer), range = unlimited integer
// add score SEO
database.addSEO(key_id, score, result => {
console.log(result);
});
// list SEO only
console.log(database.listSEO());
// update score SEO
database.updateSEO(key_id, score, result => {
console.log(result);
});
// delete SEO (not data, only SEO)
database.deleteSEO(key_id, result => {
console.log(result);
});
// request argument :
// select key (object) = pilih key yang value nya ingin di cari
// show = berapa data yang ingin ditampilkan
// page = sekarang dihalaman berapa
// button_page = jumlah alinyemen button
// for test
const keyword = "and or on for in is woman";
console.log(database.searchWithPagination({
description: keyword,
title: keyword,
category: keyword,
}, show, page, button_page));
Apakah kamu menyukai project ini? Please support saya dengan menekan subscribe di Youtube Channel saya...
Butuh ngopi gans, kasih lah untuk biaya pengembangan agar mudah membeli alat dan buat makan