Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

PocketBase to backend typu open source składający się z wbudowanej bazy danych SQLite z funkcją sprawdzania poprawności danych, subskrypcjami w czasie rzeczywistym oraz łatwym w użyciu interfejsem API REST. Oferuje również uwierzytelnianie i przechowywanie plików dla plików multimedialnych.

PocketBase jest idealny do projektów, dla których wolisz nie budować zaplecza ze względu na ograniczenia czasowe lub wygodę, ponieważ jest całkowicie przenośny i wymaga minimalnej konfiguracji. Integruje się również z popularnymi technologiami, takimi jak Vue, Svelte, React, Angular i Flutter.

Usługi świadczone przez PocketBase

PocketBase zapewnia większość usług oferowanych przez innych dostawców zaplecza, takich jak SupaBase.

  • Baza danych SQLite: PocketBase zawiera wbudowaną bazę danych SQLite. Różni się to od innych dostawców zaplecza, którzy używają większych baz danych, takich jak PostgreSQL lub MySQL. Zastosowanie SQLite sprawia, że ​​PocketBase jest lżejszy. Możesz także subskrybować zdarzenia bazy danych w czasie rzeczywistym za pośrednictwem interfejsu API.
    instagram viewer
  • Uwierzytelnianie: PocketBase obsługuje uwierzytelnianie za pomocą adresu e-mail/hasła i Uwierzytelnianie OAuth2 przez Facebooka, Google, GitLab i GitHub.
  • Nośnik danych: Możesz przesyłać zdjęcia, pliki audio i wideo do lokalnej pamięci masowej lub zasobnika S3 za pomocą PocketBase.
  • Pulpit administratora: Pulpit administratora umożliwia tworzenie kolekcji w bazie danych i zarządzanie nimi. Możesz także przesyłać pliki, przeglądać pliki dziennika i konfigurować ustawienia wysyłania wiadomości e-mail,

Według dokumentów, PocketBase może z łatwością obsłużyć ponad 10 000 jednoczesnych i trwałych danych w czasie rzeczywistym połączenia na 6 wirtualnych serwerach prywatnych, co czyni go niedrogim wyborem zaplecza dla małych i średnich firm Aplikacje.

Zauważ, że PocketBase skaluje się tylko w pionie. Oznacza to, że musisz dodać więcej procesora i pamięci RAM, aby zwiększyć moc obliczeniową. Jeśli masz dużą aplikację, rozważ a dostawca zaplecza, taki jak Firebase który umożliwia skalowanie w poziomie.

Pierwsze kroki z PocketBase

Obecnie PocketBase udostępnia dwa zestawy SDK:

  • JavaScript SDK, którego można używać z platformami JavaScript, takimi jak Svelte, React, Vue i Angular.
  • Dart SDK dla Flutterowe aplikacje.

Najprostszym sposobem na rozpoczęcie jest pobierz PocketBase. Dostępnych jest kilka linków, więc upewnij się, że pobierasz ten, który jest zgodny z Twoim środowiskiem.

Po pobraniu rozpakuj i przejdź do folderu pocketbase. Następnie uruchom to polecenie w terminalu:

./pocketbase serw

To polecenie powinno uruchomić serwer WWW na tych trasach.

  • Serwer: http://127.0.0.1:8090/
  • API REST: http://127.0.0.1:8090/api/
  • Interfejs administratora: http://127.0.0.1:8090/_/

Przejdź do http://127.0.0.1:8090/_/ Adres URL, aby utworzyć swoją pierwszą kolekcję za pomocą pulpitu administratora.

Tworzenie kolekcji w PocketBase

Przy pierwszym otwarciu interfejsu administratora pojawi się prośba o podanie adresu e-mail i hasła w celu utworzenia konta administratora.

Oto jak wygląda interfejs administratora:

Klikając Nowa kolekcja przycisk w interfejsie administratora otworzy panel kolekcji, który możesz wypełnić szczegółami, aby utworzyć nową kolekcję.

Oto jak stworzyć kolekcję o nazwie todos składającą się z tytułu i wypełnionych pól:

Kolekcja może być kolekcją podstawową lub kolekcją uwierzytelniającą. Kolekcja podstawowa jest domyślnym typem kolekcji i można jej używać do dowolnego typu danych. Kolekcja uwierzytelniania zawiera dodatkowe pola do zarządzania użytkownikami, takie jak nazwa użytkownika, adres e-mail i zweryfikowane.

Nie musisz używać interfejsu administratora, aby utworzyć kolekcję; możesz go utworzyć za pomocą internetowego interfejsu API. Dokumenty PocketBase dostarczać specyficzne dla zestawu SDK przykłady tworzenia kolekcji i zarządzania nimi za pośrednictwem interfejsu API. Możesz tworzyć, przeglądać, aktualizować, usuwać lub importować kolekcje.

Używanie PocketBase w aplikacji React

JavaScript SDK umożliwia interakcję z PocketBase z poziomu projektu React.

Aby kontynuować, zacznij od tworzenie projektu React.

Następnie zainstaluj PocketBase JavaScript SDK w swoim projekcie React przez npm:

npm install pocketbase --save

Następnie w app.js zaimportuj PocketBase i zainicjuj go.

import PocketBase z„kieszonkowy”;
konst pb = nowy PocketBase(' http://127.0.0.1:8090');

Aby zilustrować, w jaki sposób PocketBase integruje React, utworzysz funkcje pomocnicze dla aplikacji typu „do zrobienia”. Te funkcje będą tworzyć, aktualizować, pobierać i usuwać elementy.

Utwórz element do zrobienia

W app.js utwórz funkcję o nazwie addTodo.

konst dodajDo zrobienia = asynchroniczny (do zrobienia) => {
próbować {
konst rekord = czekać naczekać na pb.kolekcja(„todos”.utwórz (do zrobienia);
powrót nagrywać;
 } złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
 }
};

Ta funkcja dodaje nowy rekord do kolekcji todos.

Zaktualizuj element do zrobienia

Aby zaktualizować rekord w kolekcji todo, utwórz funkcję o nazwie updateTodo i użyj metody update.

konst aktualizacjaDo zrobienia = asynchroniczny (id_rekordu, do zrobienia) => {
próbować {
konst rekord = czekać na pb.kolekcja(„todos”).update (identyfikator_rekordu, do zrobienia);
powrót nagrywać;
 } złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
 }
};

Funkcja updateTodo wyszukuje element do wykonania na podstawie identyfikatora rekordu i aktualizuje go o nowe dane.

Usuń element do zrobienia

W app.js utwórz funkcję o nazwie deleteTodo, która usuwa rekord w kolekcji todo.

konst usuń zadanie = asynchroniczny (identyfikator_rekordu) => {
próbować {
czekać na pb.kolekcja(„todos”.delete (id_rekordu);
 } złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
 }
};

Odzyskaj element do zrobienia

Możesz pobrać pojedynczy element do wykonania lub wszystkie elementy z kolekcji.

Ta funkcja pobiera pojedynczą czynność do wykonania według identyfikatora:

konst getTodo = asynchroniczny (identyfikator_rekordu) => {
próbować {
konst rekord = czekać na pb.kolekcja(„todos”).getOne (identyfikator_rekordu, {
zwiększać: "relField1,relreld2.subRelField",
});
powrót nagrywać
 } złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
 }
};

Podczas gdy poniższa funkcja pobierze wszystkie rekordy w kolekcji todo:

konst getTodos = asynchroniczny (identyfikator_rekordu) => {
próbować {
konst rekordy = czekać na pb
.kolekcja(„todos”)
.pobierz pełną listę(200 /* rozmiar partii */, {
sortować: "-Utworzony",
});
powrót dokumentacja;
} złapać (błąd) {
powrót { błąd: Komunikat o błędzie };
}
}

Za pomocą tych funkcji można tworzyć i aktualizować interfejs użytkownika aplikacji.

Aby uzyskać bardziej szczegółowe przykłady, zobacz API rejestrów PocketBase dokumentację lub wygenerowaną dokumentację API w „Interfejsie administratora > Kolekcje > Podgląd interfejsu API”. Powinieneś mieć dostęp do listy, przeglądania, tworzenia, aktualizowania, usuwania i dokumentacji w czasie rzeczywistym dla swojej kolekcji.

Dlaczego warto używać PocketBase

PocketBase to najlepszy backend dla małych i średnich projektów. Wymaga minimalnej konfiguracji i jest łatwy w użyciu. Oferuje dwa pakiety SDK klienta — JavaScript SDK i Dart SDK — i można go używać w aplikacjach internetowych i mobilnych.

PocketBase jest również samoobsługowy i można go hostować na lokalnym serwerze lub VPS. Chociaż nie obsługuje funkcji chmury, możesz użyć go jako frameworka Go i stworzyć własną aplikację z niestandardową logiką biznesową.