Упростите разработку 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 и начните создавать свое приложение уже сегодня!