Fortune.js este un strat non-nativ de abstractizare a bazelor de date care implementeaza caracteristici grafice la nivel de aplicatie pentru Node.js si browsere web. Ofera o interfata comuna pentru baze de date, precum si relatii, actualizari inverse, integritate referentiala, care sunt construite pe baza ipotezelor din modelul de date.
Este deosebit de util pentru:
- Relatii bidirectionale in orice baza de date.
- Aplicatii care necesita optiuni de stocare pentru a fi portabile.
- Partajarea acelorasi modele de date pe server si client.
Vizualizati site-ul web pentru documentatie. Obtineti-l de la npm:
Acesta este modulul de baza. Functii suplimentare, cum ar fi reteaua (HTTP, WebSocket), adaptoare de baze de date, formate de serializare sunt enumerate in pagina de pluginuri.
Utilizare
Trebuie furnizate doar definitiile tipului de inregistrare. Aceste definitii descriu ce tipuri de date pot apartine unei inregistrari si ce relatii pot avea, pentru care Fortune.js face actualizari inverse si mentine integritatea referentiala. Iata un exemplu de serviciu de baza de microblogging:
Retineti ca ID-ul cheii primare este rezervat, deci nu este necesar sa specificati acest lucru. Link-urile sunt coduri care sunt mentinute intern la nivel de aplicatie de Fortune.js si sunt intotdeauna denormalizate, astfel incat fiecare link sa aiba un back-link. Acest lucru inseamna, de asemenea, ca modificarile intr-o inregistrare vor afecta legaturile din inregistrarile conexe.
In mod implicit, datele sunt pastrate in memorie (si IndexedDB pentru browser). Exista adaptoare pentru baze de date precum MongoDB, Postgres si NeDB. Consultati pagina de pluginuri pentru mai multe detalii.
Fortune are 4 metode principale: gasiti, creati, actualizati si stergeti, care corespund CRUD. Semnaturile metodei sunt urmatoarele:
porno peludas españolas follando rico
videosdeincesto pornoxxxxx
jovencitas masturbandose porno español jovencitas
hentaihd comic porno español
orgias familiares videos porno abuelas
sexo gratis incesto cincuentonas follando
mamas cachondas xxx abuelas
desnudas en la cocina pono gay
guarras.com danna paola desnuda
maduras pajeando culos porno
fontanero cachondo corridas en la garganta
madre española se folla a su hijo chochitos jovencitos
videos xxxxx orgias caseras
mamadas de abuelas intercambio parejas amateur
se la chupa mientras duerme el video porno mas visto en internet
porno incesto real follando en el campo
madura se corre pajas caseras
cincuentonas follando cachondas españolas
follando a mi hijastra me hace una paja
creampie española videos porno caseros españoles
. store.find („utilizator”, 123) .then (rezultate => {…})
Primul apel de metoda care interactioneaza cu baza de date va declansa o conexiune la magazinul de date si va intoarce rezultatul ca o promisiune. Metodele specifice inconjoara metoda de solicitare mai generala, consultati documentatia API pentru solicitare.
Carlige de intrare si iesire
Carligele I / O izoleaza logica de afaceri si fac parte din ceea ce face interfata reutilizabila in diferite protocoale. O functie de carlig de intrare si iesire poate fi definita pentru fiecare tip de inregistrare. Functiile Hook accepta cel putin doua argumente, obiectul context, inregistrarea si optional obiectul de actualizare pentru o cerere de actualizare. Metoda unui carlig de intrare poate fi orice metoda, cu exceptia cautarii, si un carlig de iesire poate fi aplicat pe toate metodele.
O functie de carlig de intrare poate returna sau rezolva optional o valoare pentru a determina ce persista si este sigur sa mutati oricare dintre argumentele sale. Valoarea returnata sau rezolvata trebuie sa fie inregistrarea daca este o cerere de creare, actualizarea daca este o cerere de actualizare sau orice altceva (sau pur si simplu nul) daca este o cerere de stergere. De exemplu, o functie de carlig de intrare pentru o inregistrare poate arata astfel:
O functie de carlig de iesire poate returna sau rezolva optional o inregistrare si este sigur sa mutati oricare dintre argumentele sale.
In functie de faptul daca inregistrarea rezolvata este sau nu diferita de ceea ce a fost transmis, serializatorii pot decide sa nu afiseze inregistrarea rezolvata a carligului de iesire pentru cereri de actualizare si stergere.
Carligele pentru un tip de inregistrare pot fi definite dupa cum urmeaza:
Retele
Exista o implementare de ascultator HTTP, care returneaza un ascultator de cereri Node.js care poate fi compus in aplicatii mai mari. Acesta mapeaza automat solicitarile si raspunsurile Fortune la protocolul HTTP:
Acest lucru genereaza un JSON ad hoc prin API-ul HTTP, precum si o interfata HTML pentru oameni. Exista, de asemenea, serializatoare pentru Micro API (JSON-LD) si JSON API.
Fortune.js implementeaza propriul protocol cablu bazat pe WebSocket si MessagePack, care este util pentru aplicatii soft in timp real.
Caracteristici si non-caracteristici
- Actualizarile de relatii inversa mentin automat ambele parti ale relatiilor dintre inregistrari.
- Integritate referentiala, asigurati-va ca legaturile trebuie sa fie valabile la nivel de aplicatie.
- Validari de tip, campurile sunt garantate sa apartina unui singur tip.
- Interfata adaptor, utilizati orice baza de date care poate implementa un adaptor.
- Fara cartografiere relationala obiect (ORM) sau model de inregistrare activ, doar obiecte de date simple.
- Fara cuplare cu protocolul de retea, gestionati solicitarile de oriunde.
Cerinte
Fortune.js este scris in ECMAScript 5.1, cu o adaugare ECMAScript 6: Promise . Majoritatea API-ului sau public returneaza promisiunile de a fi compatibile cu editiile viitoare ale limbii.
Licenta
Acest software este licentiat sub licenta MIT.








