После инициализации модуля, создастся файл mouse.json
в вашем каталоге в котором будет вся база. Вся она построена на объектах и ключах в них. Вот пример:
{
"key": "vаlue"
}
В ключе "key"
хранится значение "value"
. Рассмотрим более сложный объект:
{
"profile": {
"name": "Иван"
}
}
Как обратиться к ключу name
? Просто!: profile.name
Можно также обращаться и к массивам:
{
"profile": {
"names": ["Иван"]
}
}
Вот пример: profile.names[0]
Ниже на примерах вы поймёте как это работает!
Класс принимает два аргумента:
- Ключ.
- Объект с настройками.
Пример:
const DataBase = require("mouse-db.json");
const db = new DataBase("key", { fileName: "users.json" });
import DataBase = require("mouse-db.json");
const db = new DataBase("key", { fileName: "users.json" });
Для тех кто пишет на TypeScript, типы @types/node
предоставляется по умолчанию уже в библиотеке, так что вероятно ничего ставить не нужно будет.
На самом деле класс гибкий, и вы можете например не указывать второй или первый аргумент. Вот примеры вариантов:
new DataBase();
new DataBase("key");
new DataBase({ fileName: "users.json" });
new DataBase("key", { fileName: "users.json" });
db.add(key, value)
- Добавить число.db.subtract(key, value)
- Вычесть число.db.push(key, value)
- Добавить элемент в массив.db.set(key, value)
- Записать элемент в базу.db.get(key)
- Получить элемент из базы.db.has(key, checkNull)
- Проверить, есть ли такой элемент в базе.db.delete(key)
- Удалить элемент из базы.db.setConfig(key)
- Установить ключ для базы.db.addKey(key)
- Добавить ключ.db.removeKey(number)
- Убрать ключ.
// Символом "->" буду обозначать что возвращает та или иная функция.
const DataBase = require("mouse-db.json");
const db = new DataBase();
// Функция создаст объект profile в mouse.json:
/*
{
"profile": {
"mouse": { "age": 2 }
}
}
*/
db.set("profile.mouse.age", 2); // -> 2
// Возвращает, что находится по определённому ключу.
db.get("profile.mouse.age"); // -> 2
// Возвращает true если по такомy ключу есть что-то
// Параметр checkNull позволяет указать, возвращать ли false если значение равно null
db.has("profile.unknown_user"); // -> false
db.set("profile.unknown_user", null); // -> null
db.has("profile.unknown_user"); // -> true
db.has("profile.unknown_user", true); // -> false
// Удаление элемента по ключу. Возвращает true если элемент удалён и false если нет.
db.delete("profile.unknown_user"); // -> true
// Добавляет число или создаёт его если его нет.
db.add("profile.mouse.age", 1); // -> 3
db.add("profile.mouse.cheese", 1); // -> 1
db.add("profile.mouse.cheese", 2, 2); // Добавит 4 сыра.
// Вычитает число.
db.subtract("profile.mouse.cheese", 1); // -> 4
db.subtract("profile.mouse.cheese", 2, 2); // Вычтит 4 сыра -> 0
// Добавляет элемент в массив ( или создаёт его )
db.push("profile.mouse.friends", "Zlagger"); // -> ["Zlagger"]
db.push("profile.mouse.friends", "Аndrey", "Mаshа"); // -> ["Zlagger", "Аndrey", "Mаshа"]
// Альтернативный способ передать элементы в push:
const friends = ["Zlagger", "Аndrey", "Mаshа"];
db.push("profile.mouse.friends", ...friends);
Алиласы - альтернативное название для некоторых функций. Например вместо db.get
- db.fetch
. Их немного, всего-то:
db.get
-db.fetch
db.has
-db.exists
Если вы работаете с одним и тем же ключём, гораздо легче будет инициализировать класс с указанием ключа и уже работать.
const DataBase = require("mouse-db.json");
const db = new DataBase("profile.mouse");
db.has(); // -> false
db.set({}); // -> {}
db.has(); // -> true
// Интересная фича, если указать ключ в функциях - он дополнится к основному. Пример:
db.set("age", 3); // Произошло дополнение ключа ( profile.mouse.age )
db.get(); // -> { age: 3 }
В классе также есть полезные 3 функции:
db.setKey(key)
- Установить новый ключ для класса.db.addKey(key)
- Добавить новый ключ для класса.db.removeKey(number)
- Убрать определённое количество ключей.
const DataBase = require("mouse-db.json");
const db = new DataBase();
db.setKey("profile.mouse");
db.addKey("cheese"); // Теперь ключ = "profile.mouse.cheese"
console.log(db.key); // -> ["profile", "mouse", "cheese"]
db.removeKey(1); // Убираем один ключ с конца. Теперь у класса ключ = "profile.mouse"
console.log(db.key); // -> ["profile", "mouse"]
У класса также есть пару статистических переменных, которые возможно вам пригодятся:
db.key
- Возвращает в виде массива ключ.db.config
- Локальная конфигурация.DataBase.globalPath
- Возвращает глобальный путь до вашего проекта.DataBase.config
- Глобальная конфигурация.DataBase.json
- Объект, который показывает что хранится в каждом файле.
- скоро...