Protected_appContextКонтекст приложения
Protected Optional_dbOptionsДополнительные опции для работы базы данных
Формат базы данных
Выполняет INSERT-запрос.
Дополнительная информация для запроса. Содержит сам запрос, а также название таблицы и прочие данные.
true при успешной вставке записи, иначе false (нет первичного ключа или ключ запрещён)
Выполняет произвольный запрос через callback.
Если вы планируете использовать query(), обязательно переопределите _query. По умолчанию он возвращает null и не выполняет никаких действий.
функция обработчик
Выполняет DELETE-запрос.
Дополнительная информация для запроса. Содержит сам запрос, а также название таблицы и прочие данные.
true, если условие содержит первичный ключ (запись удалена или отсутствовала), иначе false
Выполняет SELECT-запрос.
⚠️ Файловый адаптер поддерживает только точное совпадение значений. Условия с операторами (например, $gt, $in) игнорируются.
Дополнительная информация для запроса. Содержит информацию о таблице и структуре.
Сам запрос
Определяет нужно ли вернуть только 1 найденную запись, либо отдать все доступные данные.
IModelRes — результат выборки: { status: true, data } при успехе, { status: false, error } — если ничего не найдено
Выполняет UPDATE-запрос.
Дополнительная информация для запроса. Содержит сам запрос, а также название таблицы и прочие данные.
true, если запись найдена по первичному ключу и обновлена (или отсутствует — операция безошибочна), иначе false
Закрывает подключение к определенной таблице. При закрытии, все хранящиеся в памяти данные сохраняются в файл. При повторном close (или таблице без данных) запись не выполняется — только ожидание in-flight операций.
Имя таблицы
Подключение к файловой БД с side-effect: предзагрузка таблиц UsersData/SoundTokens/ImageTokens (override), чтобы избежать одновременного чтения одного файла под нагрузкой.
true — файловая БД всегда доступна
Закрывает все подключения к файловой БД. Все процессы завершаются, и происходит сохранение данных в файл.
Экранирует строку для безопасного использования в запросах.
⚠️ По умолчанию просто приводит значение к строке. Если ваша БД требует экранирования (например, SQL), обязательно переопределите этот метод.
Экранируемая строка
Экранированная строка
Загружает данные таблицы из JSON-файла и кэширует их в памяти.
${tableName}.json из директории appConfig.json.Формат данных в файле:
{
"user123": { "name": "Alice", "age": 30 },
"user456": { "name": "Bob", "age": 25 }
}
где ключ — значение первичного ключа. В случае если файла нет, вернутся пустые данные
Имя таблицы (используется как имя файла)
Данные таблицы из кэша либо прочитанные из JSON-файла (при повреждении файла — {})
Удобный метод для извлечения данных из результата запроса.
Проверяет res.status и возвращает res.data только при успехе.
Используется в моделях и контроллерах для безопасного доступа к данным.
Данные из res.data при status = true, иначе null
Инициализация адаптера: запоминает время старта для детекции многопроцессного доступа к одним и тем же файлам БД.
Контекст приложения
Выполняет INSERT-запрос.
Внутри себя вызывает this._insert, основное отличие в том, что в данном методе пишутся метрики.
Дополнительная информация для запроса. Содержит сам запрос, а также название таблицы и прочие данные.
true при успешной вставке, иначе false
Проверяет, установлено ли соединение с БД.
Выполняет произвольный запрос через callback.
Внутри себя вызывает this._query. Метрики времени выполнения не записываются (в отличие от select/insert/update/remove).
функция обработчик
Выполняет DELETE-запрос.
Внутри себя вызывает this._remove, основное отличие в том, что в данном методе пишутся метрики.
Дополнительная информация для запроса. Содержит сам запрос, а также название таблицы и прочие данные.
true при успешном удалении, иначе false
Сохраняет запись: вставляет новую или обновляет существующую. Логика:
isNew === true → перед insert ключи условия мержатся в данные
(saveData.data = {...data, ...query}) и вызывается insertselectOne по saveData.query,
и если запись найдена — вызывается update, иначе — insert
(тоже с мерджем ключей условия в данные)Данные для запроса. Включает как запрос, так и сами данные
Флаг, говорящий о том, что точно происходит добавление новой записи
true при успешном сохранении, иначе false
Выполняет SELECT-запрос.
Внутри себя вызывает this._select, основное отличие в том, что в данном методе пишутся метрики.
Дополнительная информация для запроса. Содержит информацию о таблице и структуре.
Сам запрос
Определяет нужно ли вернуть только 1 найденную запись, либо отдать все доступные данные.
Результат SELECT-запроса (IModelRes)
Выполняет SELECT с ограничением до одной записи.
Дополнительные данные для запроса
Сам запрос (условие выборки). При null или undefined вернётся null
IModelRes с результатом выборки (одна запись — в data), либо null, если условие не передано. При отсутствии записей возвращается { status: false }.
Сохранение данных в кэш (в памяти)
Имя таблицы
Сохраняемые данные
Выполняет UPDATE-запрос.
Внутри себя вызывает this._update, основное отличие в том, что в данном методе пишутся метрики.
Дополнительная информация для запроса. Содержит сам запрос, а также название таблицы и прочие данные.
true при успешном обновлении, иначе false
Адаптер для файловой базы данных. Стоит использовать только для быстрого старта, либо для приложений, у которых объем базы не будет превышать несколько сотен мегабайт.