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
Спасибо за внимание.