Упростите разработку Node.js с помощью CRUD-Node

Node.js стал популярным выбором для создания веб-приложений благодаря своей масштабируемости и гибкости. Однако создание приложения с нуля может оказаться непростой задачей, особенно когда речь идет об операциях с базой данных. Вот тут-то и появляется CRUD-Node.

CRUD-Node — это пакет npm, упрощающий операции с базами данных в приложениях Node.js. Он предоставляет набор функций для создания, чтения, обновления и удаления данных в базе данных, также известных как операции CRUD. Эти операции являются фундаментальными для большинства приложений, а пакет CRUD-Node упрощает их выполнение всего несколькими строками кода.

В этом посте мы рассмотрим преимущества использования CRUD-Node и то, как он может упростить процесс разработки Node.js.

Установить

CRUD-Node можно легко установить с помощью npm, менеджера пакетов Node.js. После установки вы можете сразу начать использовать пакет. Пакет предоставляет простой API, который можно использовать для выполнения операций CRUD в любой базе данных, поддерживающей язык SQL.

npm install crud-node
yarn add crud-node

Функции

Операции CRUD. Как следует из названия, этот пакет предоставляет простой способ выполнения операций CRUD в приложении Node.js. Пакет абстрагируется от базовой реализации базы данных и предоставляет согласованный API для всех операций с базой данных. Это позволяет легко переключаться между различными поставщиками баз данных без изменения кода приложения.

// employeeRouter.{ts|js}
import { employeeController } from './employeeController';

// Executes operations in a single transaction
const transacted = true;

await db.usingSession(async session => {
  const payload = {
    email: '[email protected]',
    firstName: 'Leslie',
    lastName: 'Brett',
  };
  const data = await employeeController.createDocument(session, payload);
}, transacted);

Сортировка. Функция сортировки позволяет сортировать данные, полученные из базы данных, по любому столбцу. Пакет предоставляет варианты сортировки как по возрастанию, так и по убыванию, что упрощает сортировку данных в соответствии с вашими потребностями.

// officeRouter.{ts|js}
import { OffsetPagination, SortBy } from 'crud-node';

import { officeController } from './officeController';
import { OfficeProps } from './schemas/office';

const pagination = OffsetPagination(1, 10);
const sort = SortBy().asc(OfficeProps.places).toCriteria();

const data = await officeController.getDocuments(session, pagination, sort);

Группировка. Группировка позволяет группировать данные по определенному столбцу. Например, если у вас есть таблица сотрудников, вы можете сгруппировать их по отделам. Пакет предоставляет простой способ группировки данных и извлечения результатов во вложенном формате.

// employeeRouter.{ts|js}
import { GroupBy } from 'crud-node';

import { employeeController } from './employeeController';
import { EmployeeProps } from './schemas/employee';

const data = await employeeController.groupByDocuments<'fired' | EmployeeProps.createdAt>(
  session,
  GroupBy<EmployeeProps, 'fired' | EmployeeProps.createdAt>()
    .fields(EmployeeProps.createdAt)
    .aggregate(EmployeeProps._id, 'fired', AGG.COUNT)
    .toCriteria(),
);

Фильтрация. Фильтрация позволяет получить подмножество данных на основе определенных критериев. Пакет предоставляет гибкий и мощный API-интерфейс фильтрации, который позволяет фильтровать данные на основе нескольких критериев с использованием операторов И, ИЛИ и НЕ.

// officeRouter.{ts|js}
import { Condition, Filter, OffsetPagination, SortBy } from 'crud-node';

import { officeController } from './officeController';
import { OfficeProps } from './schemas/office';

const filterOfficesInNYC = Filter.toCriteria(
  Filter.and(Condition.like('address.city', '%New York%'), Condition.gre(OfficeProps.places, 1)),
);
const sortOfficesByAvailablePlaces = SortBy().asc(OfficeProps.places).toCriteria();
const pagination = OffsetPagination(1, 10);

const data = await officeController.filterDocumentsByCriteria(
  session,
  filterOfficesInNYC,
  pagination,
  sortOfficesByAvailablePlaces,
);

Разбивка на страницы. Разбивка на страницы позволяет извлекать данные небольшими порциями, что упрощает работу с большими наборами данных. Пакет предоставляет простой в использовании API разбивки на страницы, который позволяет указать размер страницы и получить данные для конкретной страницы.

// employeeRouter.{ts|js}
import { OffsetPagination } from 'crud-node';
import { employeeController } from './employeeController';

const pagination = OffsetPagination(1, 10);

const data = await employeeController.filterDocuments(session, { fired: true }, 'AND', pagination);

Поддерживает несколько баз данных

CRUD-Node поддерживает несколько баз данных, включая MySQL и MySQL X на данный момент. Это означает, что вы можете использовать пакет с предпочитаемой базой данных без необходимости изучения нового набора команд или синтаксиса.

Экономит время и снижает затраты на разработку

Использование CRUD-Node может сэкономить вам много времени и снизить стоимость разработки. Вместо того, чтобы тратить время на написание запросов к базе данных и обработку ошибок, вы можете сосредоточиться на разработке бизнес-логики вашего приложения. Это позволяет вам доставлять ваше приложение быстрее и с меньшими затратами.

Доступные методы:

  • init()
  • toString()
  • createDocument()
  • createDocumentIfNotExists()
  • updateDocument()
  • deleteDocument()
  • getDocument()
  • getDocuments()
  • getDocumentByCriteria()
  • searchDocumentsByCriteria()
  • searchDocuments()
  • groupByDocuments()
  • filterDocumentsByCriteria()
  • filterDocuments()
  • filterDocumentsByIds()
  • existsDocument()
  • findDocument()
  • fetchAll()
  • getCount()
  • getTotal()
  • deleteAll()
  • callStoredProcedure()

Безопасный и надежный

CRUD-Node спроектирован так, чтобы быть безопасным и надежным. Пакет использует подготовленные операторы для предотвращения атак SQL-инъекций и изящно обрабатывает ошибки, чтобы гарантировать, что ваше приложение останется стабильным даже в случае ошибки базы данных.

Заключение

CRUD-Node — это мощный пакет npm, который упрощает операции с базами данных в приложениях Node.js. Он поддерживает несколько баз данных, экономит время и затраты на разработку, является безопасным и надежным. Независимо от того, создаете ли вы небольшое или крупномасштабное веб-приложение, CRUD-Node может помочь вам оптимизировать процесс разработки и улучшить общее качество вашего кода.

Так почему бы не попробовать это в своем следующем проекте Node.js? Установите CRUD-Node с помощью npm и начните создавать свое приложение уже сегодня!

Ссылка