Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

PocketBase — это серверная часть с открытым исходным кодом, состоящая из встроенной базы данных SQLite с проверкой данных, подписками в реальном времени и простым в использовании REST API. Он также предлагает аутентификацию и файловое хранилище для медиафайлов.

PocketBase идеально подходит для проектов, для которых вы не хотите создавать серверную часть либо из-за нехватки времени, либо из-за удобства, поскольку он полностью переносим и требует минимальной настройки. Он также интегрируется с популярными технологиями, такими как Vue, Svelte, React, Angular и Flutter.

Услуги, предоставляемые PocketBase

PocketBase предоставляет большинство услуг, предлагаемых другими бэкэнд-провайдерами, такими как SupaBase.

  • База данных SQLite: PocketBase включает встроенную базу данных SQLite. Это отличается от других бэкэнд-провайдеров, которые используют более крупные базы данных, такие как PostgreSQL или MySQL. Использование SQLite делает PocketBase более легким. Вы также можете подписаться на события базы данных в реальном времени через API.
    instagram viewer
  • Аутентификация: PocketBase поддерживает аутентификацию по электронной почте/паролю и аутентификация OAuth2 через Facebook, Google, GitLab и GitHub.
  • Файловое хранилище: вы можете загружать фотографии, аудио- и видеофайлы в локальное хранилище или в корзину S3 с помощью PocketBase.
  • Панель администратора: панель администратора позволяет создавать коллекции в базе данных и управлять ими. Вы также можете загружать файлы, просматривать файлы журналов и настраивать параметры отправки электронных писем,

Согласно документам, PocketBase может легко обслуживать более 10 000 одновременных и постоянных данных в режиме реального времени. соединения на 6 виртуальных частных серверах, что делает его доступным выбором для малого и среднего бизнеса. Приложения.

Обратите внимание, что PocketBase масштабируется только по вертикали. Это означает, что вам нужно добавить больше ЦП и ОЗУ, чтобы увеличить вычислительную мощность. Если у вас большое приложение, рассмотрите серверный провайдер, такой как Firebase что позволяет горизонтальное масштабирование.

Начало работы с PocketBase

В настоящее время PocketBase предоставляет два SDK:

  • Пакет SDK для JavaScript, который можно использовать с платформами JavaScript, такими как Svelte, React, Vue и Angular.
  • Dart SDK для Флаттер-приложения.

Самый простой способ начать — это скачать PocketBase. Существует несколько ссылок, поэтому обязательно загрузите ту, которая совместима с вашей средой.

После того, как вы загрузили его, распакуйте и перейдите в папку pocketbase. Затем запустите эту команду в терминале:

./карманная подача

Эта команда должна запустить веб-сервер на этих маршрутах.

  • Сервер: http://127.0.0.1:8090/
  • ОТДЫХА API: http://127.0.0.1:8090/api/
  • Пользовательский интерфейс администратора: http://127.0.0.1:8090/_/

Перейдите к http://127.0.0.1:8090/_/ URL-адрес для создания вашей первой коллекции с помощью панели администратора.

Создание коллекции в PocketBase

При первом открытии пользовательского интерфейса администратора он запросит адрес электронной почты и пароль для создания учетной записи администратора.

Вот как выглядит интерфейс администратора:

Нажав на Новая коллекция Кнопка в пользовательском интерфейсе администратора откроет панель коллекции, которую вы можете заполнить деталями для создания новой коллекции.

Вот как можно создать коллекцию под названием todos, состоящую из заголовка и заполненных полей:

Коллекция может быть либо базовой, либо коллекцией авторизации. Базовая коллекция — это тип коллекции по умолчанию, и вы можете использовать ее для любого типа данных. Коллекция авторизации содержит дополнительные поля для управления пользователями, такие как имя пользователя, адрес электронной почты и проверено.

Вам не нужно использовать пользовательский интерфейс администратора для создания коллекции; вы можете создать его с помощью веб-API. Документы PocketBase предоставить специфичные для SDK примеры того, как создавать коллекции и управлять ими через API. Вы можете создавать, просматривать, обновлять, удалять или импортировать коллекции.

Использование PocketBase в приложении React

JavaScript SDK позволяет вам взаимодействовать с PocketBase из проекта React.

Чтобы продолжить, начните с создание проекта React.

Затем установите PocketBase JavaScript SDK в свой проект React через npm:

npm установить pocketbase --save

Затем в app.js импортируйте PocketBase и инициализируйте его.

Импортировать Карманная база от'карманная база';
константа пб = новый Карманная база(' http://127.0.0.1:8090');

Чтобы проиллюстрировать, как PocketBase интегрирует React, вы создадите вспомогательные функции для приложения списка дел. Эти функции будут создавать, обновлять, извлекать и удалять элементы.

Создать элемент списка дел

В app.js создайте функцию addTodo.

константа добавитьTodo = асинхронный (дело) => {
пытаться {
константа запись = ЖдитеЖдите пб.коллекция("дело").создать (сделать);
возвращаться записывать;
 } ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
 }
};

Эта функция добавляет новую запись в коллекцию todos.

Обновить элемент Todo

Чтобы обновить запись в коллекции задач, создайте функцию с именем updateTodo и используйте метод обновления.

константа обновитьTodo = асинхронный (record_id, задача) => {
пытаться {
константа запись = Ждите пб.коллекция("дело").update (record_id, todo);
возвращаться записывать;
 } ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
 }
};

Функция updateTodo находит элемент списка дел на основе идентификатора записи и обновляет его новыми данными.

Удалить элемент списка дел

В app.js создайте функцию с именем deleteTodo, которая удаляет запись в коллекции задач.

константа удалитьTodo = асинхронный (record_id) => {
пытаться {
Ждите пб.коллекция("дело").удалить (record_id);
 } ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
 }
};

Получить элемент Todo

Вы можете получить один элемент списка дел или все элементы из коллекции.

Эта функция извлекает один элемент списка дел по идентификатору:

константа получитьTodo = асинхронный (record_id) => {
пытаться {
константа запись = Ждите пб.коллекция("дело").getOne (record_id, {
расширять: «relField1, relField2.subRelField»,
});
возвращаться записывать
 } ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
 }
};

В то время как функция ниже извлечет все записи в коллекции задач:

константа получитьTodos = асинхронный (record_id) => {
пытаться {
константа записи = Ждите пб
.коллекция("дело")
.getFullList(200 /* размер партии */, {
Сортировать: "-созданный",
});
возвращаться записи;
} ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
}
}

Вы можете использовать эти функции для создания и обновления пользовательского интерфейса приложения.

Более подробные примеры см. API записей PocketBase документацию или сгенерированную документацию по API в «Пользовательском интерфейсе администратора > Коллекции > Предварительный просмотр API». Вы должны иметь доступ к списку, просмотру, созданию, обновлению, удалению и документации в режиме реального времени для вашей коллекции.

Почему вы должны использовать PocketBase

PocketBase — лучший бэкенд для малых и средних проектов. Он требует минимальной настройки и прост в использовании. Он предлагает два клиентских SDK — JavaScript SDK и Dart SDK — и вы можете использовать его в веб-приложениях и мобильных приложениях.

PocketBase также можно размещать самостоятельно, и вы можете разместить его на локальном сервере или VPS. Хотя он не поддерживает облачные функции, вы можете использовать его в качестве платформы Go и создать собственное приложение с пользовательской бизнес-логикой.