Skip to content

Latest commit

 

History

History
163 lines (145 loc) · 7.77 KB

Документация.md

File metadata and controls

163 lines (145 loc) · 7.77 KB

Документация...

Полезная информация:


После инициализации модуля, создастся файл mouse.json в вашем каталоге в котором будет вся база. Вся она построена на объектах и ключах в них. Вот пример:

{
    "key": "vаlue"
}

В ключе "key" хранится значение "value". Рассмотрим более сложный объект:

{
    "profile": {
        "name": "Иван"
    }
}

Как обратиться к ключу name? Просто!: profile.name

Можно также обращаться и к массивам:

{
    "profile": {
        "names": ["Иван"]
    }
}

Вот пример: profile.names[0]

Ниже на примерах вы поймёте как это работает!

Инициализация класса.

Класс принимает два аргумента:

  • Ключ.
  • Объект с настройками.

Пример:

> JаvаScript

const DataBase = require("mouse-db.json");
const db = new DataBase("key", { fileName: "users.json" });

> TypeScript

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 - Объект, который показывает что хранится в каждом файле.

!? Вопросы/Ответы ?!

  1. скоро...

На этом всё, я надеюсь мой модуль вам понравится. Если что - всё жду в #Issues этого репозитория GitHib :]