umbot
    Preparing search index...

    Адаптер для файловой базы данных. Стоит использовать только для быстрого старта, либо для приложений, у которых объем базы не будет превышать 250мб.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _appContext: AppContext<IFileDbInfo>
    _dbOptions?: IAppDB

    Дополнительные опции для работы базы данных

    dbFormat: string = 'file'

    Формат базы данных

    Methods

    • Выполняет INSERT-запрос.

      Parameters

      • insertData: IQuery

        Дополнительная информация для запроса. Содержит сам запроса, а также название таблицы и прочие данные.

      Returns boolean

    • Выполняет произвольный запрос через callback. Если вы планируете использовать query(), обязательно переопределите _query. По умолчанию он возвращает null и не выполняет никаких действий.

      Parameters

      • _callback: TQueryCb

        функция обработчик

      Returns unknown

    • Выполняет DELETE-запрос.

      Parameters

      • removeData: IQuery

        Дополнительная информация для запроса. Содержит сам запроса, а также название таблицы и прочие данные.

      Returns boolean

    • Выполняет SELECT-запрос.

      ⚠️ Файловый адаптер поддерживает только точное совпадение значений. Условия с операторами (например, $gt, $in) игнорируются.

      Parameters

      • selectData: IQuery

        Дополнительная информация для запроса. Содержит информацию о таблице и структуре.

      • where: IQueryData | null

        Сам запрос

      • isOne: boolean = false

        Определяет нужно ли вернуть только 1 найденную запись, либо отдать все доступные данные.

      Returns IModelRes

    • Выполняет UPDATE-запрос.

      Parameters

      • updateData: IQuery

        Дополнительная информация для запроса. Содержит сам запроса, а также название таблицы и прочие данные.

      Returns boolean

    • Закрывает подключение к определенной таблице. При закрытии, все хранящиеся в памяти данные сохраняются в файл.

      Parameters

      • tableName: string

      Returns void

    • Устанавливает подключение к базе данных. В случае успешного подключения возвращается true

      Returns boolean | Promise<boolean>

    • Закрывает все подключения к файловой БД. Все процессы завершаются, и происходит сохранение данных в файл.

      Returns void

    • Экранирует строку для безопасного использования в запросах.

      ⚠️ По умолчанию просто приводит значение к строке. Если ваша БД требует экранирования (например, SQL), обязательно переопределите этот метод.

      Parameters

      • str: string | number

        Экранируемый запрос

      Returns string

    • Получение всех данных из базы

      Parameters

      • tableName: string

        Имя таблицы

      Returns IFileInfo

    • Загружает данные таблицы из JSON-файла и кэширует их в памяти.

      • При первом обращении читает файл ${tableName}.json из директории appConfig.json.
      • Данные кэшируются с привязкой к времени последнего изменения файла (mtimeMs).
      • Если файл не изменился, возвращаются кэшированные данные.
      • В случае ошибки парсинга делается повторная попытка (защита от гонок записи/чтения).

      Формат данных в файле:

      {
      "user123": { "name": "Alice", "age": 30 },
      "user456": { "name": "Bob", "age": 25 }
      }

      где ключ — значение первичного ключа. В случае если файла нет, вернутся пустые данные

      Parameters

      • tableName: string

        Имя таблицы (используется как имя файла)

      Returns TFileData

    • Удобный метод для извлечения данных из результата запроса. Проверяет res.status и возвращает res.data только при успехе.

      Используется в моделях и контроллерах для безопасного доступа к данным.

      Parameters

      • res: IModelRes<IDbResult<unknown>>

        Результат запроса. В случае успешного запроса вернутся данные, в противном случае null

      Returns IDbResult<unknown> | null

    • Метод инициализации адаптера. Вызывается один раз при подключении через bot.use(). В данном методе можно произвести дополнительную настройку для подключения к базе

      Parameters

      • appContext: AppContext<unknown>

        Контекст приложения

      Returns void

    • Выполняет INSERT-запрос.

      Внутри себя вызывает this._insert, основное отличие в том, что в данном методе пишутся метрики.

      Parameters

      • insertData: IQuery

        Дополнительная информация для запроса. Содержит сам запроса, а также название таблицы и прочие данные.

      Returns Promise<boolean>

    • Выполняет произвольный запрос через callback.

      Внутри себя вызывает this._query, основное отличие в том, что в данном методе пишутся метрики.

      Parameters

      • callback: TQueryCb

        функция обработчик

      Returns unknown

    • Выполняет DELETE-запрос.

      Внутри себя вызывает this._remove, основное отличие в том, что в данном методе пишутся метрики.

      Parameters

      • removeData: IQuery

        Дополнительная информация для запроса. Содержит сам запроса, а также название таблицы и прочие данные.

      Returns Promise<boolean>

    • Сохраняет запись: вставляет новую или обновляет существующую. Логика:

      • Если isNew === true → вызывается insert
      • Иначе → сначала делается selectOne по saveData.query, и если запись найдена — вызывается update, иначе — insert

      Parameters

      • saveData: IQuery

        Данные для запроса. Включает как запроса, так и сами данные

      • isNew: boolean

        Флаг, говорящий о том, что точно происходит добавление новой записи

      Returns Promise<boolean>

    • Выполняет SELECT-запрос.

      Внутри себя вызывает this._select, основное отличие в том, что в данном методе пишутся метрики.

      Parameters

      • selectData: IQuery

        Дополнительная информация для запроса. Содержит информацию о таблице и структуре.

      • where: IQueryData | null

        Сам запрос

      • isOne: boolean

        Определяет нужно ли вернуть только 1 найденную запись, либо отдать все доступные данные.

      Returns Promise<IModelRes<IDataValue>>

    • Сохранение всех данные в базу

      Parameters

      • tableName: string

        Имя таблицы

      • data: IFileInfo | undefined

        Сохраняемые данные

      Returns void

    • Выполняет UPDATE-запрос.

      Внутри себя вызывает this._update, основное отличие в том, что в данном методе пишутся метрики.

      Parameters

      • updateData: IQuery

        Дополнительная информация для запроса. Содержит сам запроса, а также название таблицы и прочие данные.

      Returns Promise<boolean>