JavaScript: статические методы для CRUD
реализуем CRUD с помощью статических методов в JavaScript
 
  
  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
Спасибо за внимание.

 
   
   
   
  