Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

PocketBase je pozadina otvorenog koda koja se sastoji od ugrađene SQLite baze podataka s validacijom podataka, pretplatama u stvarnom vremenu i REST API-ja jednostavnog za korištenje. Također nudi autentifikaciju i pohranu datoteka za medijske datoteke.

PocketBase je savršen za projekte za koje radije ne biste izgradili pozadinu zbog vremenskih ograničenja ili zbog praktičnosti jer je potpuno prenosiv i zahtijeva minimalno postavljanje. Također se integrira s popularnim tehnologijama kao što su Vue, Svelte, React, Angular i Flutter.

Usluge koje pruža PocketBase

PocketBase pruža većinu usluga koje nude drugi pozadinski pružatelji usluga poput SupaBase.

  • SQLite baza podataka: PocketBase uključuje ugrađenu SQLite bazu podataka. Ovo se razlikuje od drugih pozadinskih pružatelja koji koriste veće baze podataka kao što su PostgreSQL ili MySQL. Upotreba SQLitea čini PocketBase lakšim. Također se možete pretplatiti na događaje baze podataka u stvarnom vremenu putem API-ja.
    instagram viewer
  • Ovjera: PocketBase podržava autentifikaciju e-pošte/lozinke i OAuth2 provjera autentičnosti putem Facebooka, Googlea, GitLaba i GitHuba.
  • Pohrana datoteka: Možete prenijeti fotografije, audio i video datoteke u lokalnu pohranu ili S3 kantu koristeći PocketBase.
  • Administratorska nadzorna ploča: Nadzorna ploča administratora omogućuje vam stvaranje i upravljanje zbirkama u bazi podataka. Također možete učitati datoteke, pregledati datoteke dnevnika i konfigurirati postavke za slanje e-pošte,

Prema dokumentima, PocketBase može lako poslužiti više od 10.000 istodobnih i postojanih usluga u stvarnom vremenu veze na 6 virtualnih privatnih poslužitelja što ga čini pristupačnim izborom pozadine za mala i srednja poduzeća aplikacije.

Imajte na umu da PocketBase skalira samo okomito. To znači da trebate dodati više CPU-a i RAM-a kako biste povećali snagu obrade. Ako imate veliku aplikaciju, razmotrite a pozadinski pružatelj kao što je Firebase koji omogućuje horizontalno skaliranje.

Početak rada s PocketBase

Trenutno PocketBase nudi dva SDK-a:

  • JavaScript SDK koji možete koristiti s JavaScript okvirima kao što su Svelte, React, Vue i Angular.
  • Dart SDK za Flutter aplikacije.

Najlakši način da počnete je da preuzmite PocketBase. Postoji nekoliko poveznica, stoga svakako preuzmite onu koja je kompatibilna s vašim okruženjem.

Nakon što ga preuzmete, izdvojite i idite do mape pocketbase. Zatim pokrenite ovu naredbu u terminalu:

./pocketbase poslužiti

Ova naredba bi trebala pokrenuti web poslužitelj na ovim rutama.

  • poslužitelj: http://127.0.0.1:8090/
  • REST API: http://127.0.0.1:8090/api/
  • Administratorsko sučelje: http://127.0.0.1:8090/_/

Idite do http://127.0.0.1:8090/_/ URL za izradu vaše prve zbirke pomoću administratorske nadzorne ploče.

Stvaranje zbirke u PocketBase

Kada prvi put otvorite administratorsko korisničko sučelje, ono će tražiti adresu e-pošte i lozinku za stvaranje administratorskog računa.

Evo kako izgleda administratorsko sučelje:

Klikom na Nova kolekcija gumb u korisničkom sučelju administratora otvorit će ploču zbirke koju možete ispuniti detaljima za stvaranje nove zbirke.

Evo kako biste stvorili zbirku pod nazivom todos koja se sastoji od naslova i popunjenih polja:

Zbirka može biti baza ili autentifikacija. Osnovna zbirka je zadana vrsta zbirke i možete je koristiti za bilo koju vrstu podataka. Zbirka autorizacije sadrži dodatna polja za upravljanje korisnicima, poput korisničkog imena, e-pošte i provjere.

Ne morate koristiti administratorsko korisničko sučelje za izradu zbirke; možete ga izraditi pomoću web API-ja. PocketBase dokumenti pružaju primjere specifične za SDK kako stvoriti i upravljati zbirkama putem API-ja. Možete stvarati, pregledavati, ažurirati, brisati ili uvoziti zbirke.

Korištenje PocketBase u React aplikaciji

JavaScript SDK vam omogućuje interakciju s PocketBase iz React projekta.

Za nastavak, počnite od stvaranje React projekta.

Zatim instalirajte PocketBase JavaScript SDK u svoj React projekt putem npm-a:

npm instaliraj pocketbase --save

Zatim u app.js uvezite PocketBase i inicijalizirajte ga.

uvoz PocketBase iz'džepna baza';
konst pb = novi PocketBase(' http://127.0.0.1:8090');

Da biste ilustrirali kako PocketBase integrira React, izradit ćete pomoćne funkcije za aplikaciju zadataka. Ove će funkcije stvarati, ažurirati, dohvaćati i brisati stavke.

Stvorite Todo stavku

U app.js izradite funkciju pod nazivom addTodo.

konst dodajTodo = asinkroni (todo) => {
probati {
konst zapis = čekatičekati pb.zbirka("todos").stvori (todo);
povratak snimiti;
 } ulov (pogreška) {
povratak { greška: error.message };
 }
};

Ova funkcija dodaje novi zapis u kolekciju todos.

Ažurirajte Todo stavku

Za ažuriranje zapisa u kolekciji zadataka, stvorite funkciju pod nazivom updateTodo i upotrijebite metodu ažuriranja.

konst updateTodo = asinkroni (record_id, todo) => {
probati {
konst zapis = čekati pb.zbirka("todos").ažuriraj (id_snimke, todo);
povratak snimiti;
 } ulov (pogreška) {
povratak { greška: error.message };
 }
};

Funkcija updateTodo pronalazi stavku obveze na temelju ID-a zapisa i ažurira je novim podacima.

Brisanje stavke Todo

U app.js izradite funkciju pod nazivom deleteTodo koja briše zapis u kolekciji zadataka.

konst deleteTodo = asinkroni (id_zapisa) => {
probati {
čekati pb.zbirka("todos").delete (record_id);
 } ulov (pogreška) {
povratak { greška: error.message };
 }
};

Dohvatite stavku obveze

Možete dohvatiti jednu stavku obveze ili sve stavke iz zbirke.

Ova funkcija dohvaća jednu stavku obveze prema ID-u:

konst getTodo = asinkroni (id_zapisa) => {
probati {
konst zapis = čekati pb.zbirka("todos").getOne (record_id, {
proširiti: "relField1,relField2.subRelField",
});
povratak snimiti
 } ulov (pogreška) {
povratak { greška: error.message };
 }
};

Dok će funkcija ispod dohvatiti sve zapise u kolekciji zadataka:

konst getTodos = asinkroni (id_zapisa) => {
probati {
konst zapisi = čekati pb
.kolekcija("todos")
.getFullList(200 /* veličina serije */, {
vrsta: "-stvoren",
});
povratak zapisi;
} ulov (pogreška) {
povratak { greška: error.message };
}
}

Ove funkcije možete koristiti za izradu i ažuriranje korisničkog sučelja aplikacije.

Za detaljnije primjere pogledajte PocketBase records API dokumentaciju ili generiranu API dokumentaciju u "Administratorsko sučelje > Zbirke > API pregled". Trebali biste moći pristupiti popisu, pregledavati, stvarati, ažurirati, brisati i dokumentaciji svoje zbirke u stvarnom vremenu.

Zašto biste trebali koristiti PocketBase

PocketBase je najbolja pozadina za male i srednje projekte. Zahtijeva minimalno postavljanje i jednostavan je za korištenje. Nudi dva klijentska SDK-a — JavaScript SDK i Dart SDK — i možete ga koristiti u web i mobilnim aplikacijama.

PocketBase je također samostalan i možete ga ugostiti na lokalnom poslužitelju ili VPS-u. Iako ne podržava funkcije oblaka, možete ga koristiti kao okvir Go i izraditi vlastitu aplikaciju s prilagođenom poslovnom logikom.