Читатели като вас помагат в подкрепа на 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 мащабира само вертикално. Това означава, че трябва да добавите повече CPU и RAM, за да увеличите мощността на обработка. Ако имате голямо приложение, помислете за a бекенд доставчик като Firebase което позволява хоризонтално мащабиране.

Първи стъпки с PocketBase

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

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

Най-лесният начин да започнете е да изтеглете PocketBase. Има няколко връзки, така че не забравяйте да изтеглите тази, която е съвместима с вашата среда.

След като го изтеглите, извлечете и отидете до папката pocketbase. След това изпълнете тази команда в терминал:

./pocketbase service

Тази команда трябва да стартира уеб сървър на тези маршрути.

  • сървър: http://127.0.0.1:8090/
  • REST 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 и го инициализирайте.

импортиране PocketBase от"джобна база";
конст pb = нов PocketBase(' http://127.0.0.1:8090');

За да илюстрирате как PocketBase интегрира React, ще създадете помощните функции за приложение със задачи. Тези функции ще създават, актуализират, извличат и изтриват елементи.

Създаване на Todo Item

В app.js създайте функция, наречена addTodo.

конст addTodo = асинхронен (todo) => {
опитвам {
конст запис = изчакайтеизчакайте pb.collection("todos").създай (todo);
връщане запис;
 } улов (грешка) {
връщане { грешка: съобщение за грешка };
 }
};

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

Актуализирайте елемент от задачи

За да актуализирате запис в колекцията от задачи, създайте функция, наречена updateTodo, и използвайте метода за актуализиране.

конст updateTodo = асинхронен (запис_id, todo) => {
опитвам {
конст запис = изчакайте pb.collection("todos").update (запис_id, todo);
връщане запис;
 } улов (грешка) {
връщане { грешка: съобщение за грешка };
 }
};

Функцията updateTodo намира задачата въз основа на идентификатора на записа и го актуализира с новите данни.

Изтриване на задача

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

конст deleteTodo = асинхронен (запис_id) => {
опитвам {
изчакайте pb.collection("todos").изтриване (идентификатор на запис);
 } улов (грешка) {
връщане { грешка: съобщение за грешка };
 }
};

Извличане на Todo елемент

Можете да извлечете един елемент от задачата или всички елементи от колекцията.

Тази функция извлича един елемент от задачата по id:

конст getTodo = асинхронен (запис_id) => {
опитвам {
конст запис = изчакайте pb.collection("todos").getOne (запис_id, {
разширяване: "relField1,relField2.subRelField",
});
връщане запис
 } улов (грешка) {
връщане { грешка: съобщение за грешка };
 }
};

Докато функцията по-долу ще извлече всички записи в колекцията от задачи:

конст getTodos = асинхронен (запис_id) => {
опитвам {
конст записи = изчакайте pb
.колекция("todos")
.getFullList(200 /* размер на партидата */, {
вид: "-създадено",
});
връщане записи;
} улов (грешка) {
връщане { грешка: съобщение за грешка };
}
}

Можете да използвате тези функции, за да създадете и актуализирате потребителския интерфейс на приложението.

За по-подробни примери вижте API за записи на PocketBase документация или генерираната API документация в „Admin UI > Collections > API Preview“. Трябва да имате достъп до списък, преглед, създаване, актуализиране, изтриване и документацията в реално време за вашата колекция.

Защо трябва да използвате PocketBase

PocketBase е най-добрият бекенд за малки до средни проекти. Изисква минимална настройка и е лесен за използване. Той предлага два клиентски SDK – JavaScript SDK и Dart SDK – и можете да го използвате в уеб и мобилни приложения.

PocketBase също е самостоятелно хостван и можете да го хоствате на локален сървър или VPS. Въпреки че не поддържа облачни функции, можете да го използвате като рамка на Go и да създадете свое собствено приложение с персонализирана бизнес логика.