dr.Brain

doctor Brain

мир глазами веб-разработчика

JavaScript: статические методы для CRUD

реализуем CRUD с помощью статических методов в JavaScript

dr.Brain

время чтения 2 мин.

Photo by Nathan Anderson on Unsplash

CRUD (create, read, update, delete, в переводе: создать, прочитать, обновить, удалить) — четыре базовых функции, которые мы применяем к любой информации в любых приложениях.

Рассмотрим варианты реализации CRUD с помощью статических методов при работе с базой данных в JavaScript:

Read

Читаем данные

static async getAllProdHouse() {
    try {
      const index = `
      SELECT cn.*, ph."name_fromnameTable"
      FROM "ClassName2" cn
      JOIN "ClassName1" cI
      ON cn."ClassName1Id" = cI.id
      ORDER BY cn.dateoryear DESC/ASC
    `
      const {rows} = await pool.query(index);
      const object = Factory.bulkname(rows);

      return object;
    } catch (error) {
      throw error;
    }
  }
}

Create

Создаем данные

static async createThings(name, Id) {
  try {
    let validation = this.validation(name);
    if (validation.length > 0) {
      throw validation;
    }
    const query = `
      INSERT INTO "ClassName2" ("name")
      VALUES ($1,) `;
    await pool.query(query, [name]);
  } catch (error) {
    throw error;

Delete

Удаляем данные

static async deleteTable(id) {
  try {
    const findCn = await this.findCnById(id);

    if (findCn.length === 0) {
      throw new Error("data cn not found");
    }

    const query = 'delete from "cn" where id = $1';

    await pool.query(query, [id]);
  } catch (error) {
    throw error;
  }
}

Find

Ищем данные

static async findCnById(id) {
  try {
    const index = `
      SELECT cn.*, ph."name_fromnameTable"
      FROM "ClassName2" cn
      JOIN "ClassName1" cI
      ON cn."ClassName1Id" = cI.id
      WHERE cn.id = $1
    `;

    const { rows } = await pool.query(query, [id]);
    const instance = Factory.bulkCn(rows);

    return instance;
  } catch (error) {
    throw error;
  }
}

Update

Обновляем данные

static async updateCn(id, name) {
  try {
    let validation = this.validation(name, date);

    if (validation.length > 0) {
      throw validation;
    }

    const query = `
      UPDATE "Cn"
      SET "name" = $1,
          "date" = $2,

      WHERE "id" = $5
    `;

    await pool.query(query, [name, date id]);
  } catch (error) {
    throw error;
  }
}

Validate

Проверяем данные

static validation(name, date) {
  let errors = [];

  if (!name) {
    errors[0] = "name empty";
  }

  return errors;
}
}

Module.export = Model

Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.