umbot - v2.0.8
    Preparing search index...

    Class DbController

    Контроллер для работы с данными Автоматически выбирает подходящий источник данных на основе конфигурации приложения

    // Создание контроллера
    const controller = new DbController();

    // Настройка правил и имени таблицы
    controller.setRules([
    { name: ['username'], type: 'string', max: 50 }
    ]);
    controller.tableName = 'users';

    // Выполнение запросов
    const result = await controller.select({ username: 'John' });

    DbController

    • DbControllerFile
    • DbControllerMongoDb

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _tableName: string

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

    _rules: IModelRules[]

    Правила валидации для полей таблицы Определяют типы и ограничения для каждого поля

    _connectConfig: undefined | IAppDB

    Конфигурация подключения к базе данных Содержит параметры для установки соединения

    _primaryKeyName: TKey

    Имя первичного ключа таблицы По умолчанию 'id'

    id
    

    Accessors

    • get primaryKeyName(): TKey

      Возвращает имя первичного ключа таблицы

      Returns TKey

      Имя первичного ключа

      const keyName = controller.primaryKeyName;
      
    • set primaryKeyName(primaryKey: TKey): void

      Устанавливает имя первичного ключа таблицы

      Parameters

      • primaryKey: TKey

        Имя первичного ключа

      Returns void

      controller.primaryKeyName = 'id';
      
    • get tableName(): string

      Возвращает имя таблицы

      Returns string

      Имя таблицы

      const table = controller.tableName;
      
    • set tableName(tableName: string): void

      Устанавливает имя таблицы

      Parameters

      • tableName: string

        Имя таблицы

      Returns void

      controller.tableName = 'users';
      

    Methods

    • Устанавливает правила валидации для модели

      Parameters

      • rules: IModelRules[]

        Массив правил валидации

      Returns void

      controller.setRules([
      { name: ['username'], type: 'string', max: 50 },
      { name: ['age'], type: 'integer' }
      ]);
    • Сохраняет запись в источник данных Если запись существует - обновляет, иначе создает новую

      Parameters

      • queryData: QueryData

        Данные для сохранения

      • isNew: boolean = false

        Флаг создания новой записи

      Returns Promise<any>

      Promise с результатом операции

      const queryData = new QueryData();
      queryData.setData({ username: 'John', age: 25 });
      await controller.save(queryData);
    • Проверяет наличие записи в таблице

      Parameters

      • query: null | IQueryData

        Условия поиска

      Returns Promise<boolean>

      Promise - true если запись найдена

      const exists = await controller.isSelected({ id: 1 });
      if (exists) {
      console.log('Record found');
      }
    • Обновляет существующую запись в источнике данных

      Parameters

      • updateQuery: QueryData

        Данные для обновления

      Returns Promise<any>

      Promise с результатом операции

      const queryData = new QueryData();
      queryData.setQuery({ id: 1 });
      queryData.setData({ username: 'John' });
      await controller.update(queryData);
    • Добавляет новую запись в источник данных

      Parameters

      • insertQuery: QueryData

        Данные для добавления

      Returns Promise<any>

      Promise с результатом операции

      const queryData = new QueryData();
      queryData.setData({ username: 'John', age: 25 });
      await controller.insert(queryData);
    • Удаляет запись из источника данных

      Parameters

      • removeQuery: QueryData

        Данные для удаления

      Returns Promise<boolean>

      Promise - true если удаление успешно

      const queryData = new QueryData();
      queryData.setQuery({ id: 1 });
      await controller.remove(queryData);
    • Выполняет произвольный запрос к источнику данных

      Parameters

      • callback: TQueryCb

        Функция обратного вызова для выполнения запроса

      Returns any

      Результат выполнения запроса

      const result = await controller.query(async (client, db) => {
      const collection = db.collection('users');
      return await collection.aggregate([
      { $match: { age: { $gt: 18 } } },
      { $group: { _id: '$city', count: { $sum: 1 } } }
      ]).toArray();
      });
    • Выполняет поиск записей в источнике данных

      Parameters

      • where: null | IQueryData

        Условия поиска

      • isOne: boolean = false

        Флаг выборки одной записи

      Returns Promise<IModelRes>

      Promise с результатом запроса

      // Поиск одной записи
      const one = await controller.select({ id: 1 }, true);

      // Поиск нескольких записей
      const many = await controller.select({ age: { $gt: 18 } });
    • Экранирует специальные символы в строке

      Parameters

      • text: string | number

        Текст для экранирования

      Returns string

      Экранированная строка

      const safe = controller.escapeString("O'Connor");
      
    • Проверяет состояние подключения к источнику данных

      Returns Promise<boolean>

      Promise - true если подключение активно

      const isConnected = await controller.isConnected();
      if (isConnected) {
      // Выполнение операций с данными
      }
    • Выполняет поиск одной записи в источнике данных

      Parameters

      • query: null | IQueryData

        Условия поиска

      Returns Promise<null | IModelRes>

      Promise с результатом запроса или null

      const result = await controller.selectOne({ id: 1 });
      if (result?.status) {
      console.log('Record found');
      }