[ALPHA] Drop-in, suport pentru serializator agnostic ORM pentru aplicatiile Express / Connect Node.
Nota: acesta este un software alfa si este inca in curs de schimbare. Contributii binevenite, consumatorii atentie ????
Instalare
Utilizare
Blackburn se conecteaza la aplicatia dvs. ca middleware Express / Connect. Pentru a-l utiliza, trebuie sa furnizati doua lucruri: un adaptor si serializatoare. Iata un exemplu simplu:
Aceasta seteaza Blackburn pentru a utiliza adaptorul brut si il furnizeaza cu un serializator de carti (mai multe despre adaptoare si serializatoare de mai jos).
Blackburn suprascrie res.render () in mod implicit (desi acest lucru este personalizabil). Accepta doua argumente:
- sarcina utila – datele cu care doriti sa raspundeti. Poate fi, de asemenea, o promisiune care se rezolva cu sarcina utila intentionata.
- optiuni – va permite sa treceti optiuni prin redare. De exemplu, randatorul JSON-API accepta o optiune inclusa pentru a adauga inregistrari incarcate lateral la raspuns.
Puteti personaliza numele metodei de redare a lui Blackburn trecand in optiunea „renderMethodName”:
Optiuni
Constructorul middleware Blackburn are mai multe optiuni, afisate mai jos cu valorile lor implicite:
follando con las vecinas suegras peludas
follada a traicion madres cachondas
porno portugues muy tetonas
pajotes porno gratis abuelos
argentina follada videos porno xxx incesto
cerdas com gratis porno argumento
porno traducido al español viejas calientes
realincest folladas caseras reales
videos madres lesbianas pornoamater
xxporn masaje final feliz
putas en vic incesto real madre hijo
videos porno abuelas videos gays españoles
porno español creampie porno abuelas tetonas
follada por muchos follate a mi novia
jovenes zorras vecinas cachondas
casadas cachondas penes erectos
jovencitas peludas follando videos chicas gratis
se corre dentro de su prima casting porno español
follar con jovencitas porno gay violacion
cornudos consentidos porno casero colombiano
In mod implicit, va suprascrie standardul res.render Express))
Concepte
Scopul Blackburn este de a oferi codului dvs. middleware o interfata consistenta pentru a reda un raspuns JSON fara a fi preocupat de detaliile despre cum este structurat acest raspuns. Acest lucru va permite sa separati prezentarea raspunsurilor dvs. de munca de construire a acestora.
Exista doua concepte principale cu care va veti ocupa:
- Adaptoarele permit blackburn-ului sa va inteleaga ORM-ul (sau lipsa acestuia – consultati RawAdapter). Deoarece blackburn-ul nu este legat de un ORM specific, trebuie sa stie cum sa-ti intrebe modelele ce tip sunt, care sunt relatiile lor etc.
- Serializatorii reprezinta diferitele structuri si formate de iesire. De exemplu, serializatorul JSONAPI va trimite raspunsuri conforme JSONAPI 1.0. Serializatorii va pot permite, de asemenea, sa personalizati raspunsul, adica atributele din lista alba care trebuie incluse sau redenumirea underscored_keys in camelCased).
Pentru adaptoare, veti alege, de obicei, o clasa pre-construita, grupata (adica MongooseAdapter daca utilizati Mongoose), sau o veti furniza pe a dvs. daca ORM-ul dvs. nu este acceptat din cutie.
Pentru serializatoare, veti alege de obicei un format pentru API-ul dvs. (de exemplu, JSON plat, JSONAPI 1.0 etc.) si veti alege un serializator de baza pentru acel format (adica JSONAPISerializer). Apoi, fiecare tip de model se va extinde din serializatorul de baza si va personaliza care dintre atributele si relatiile sale sunt trimise prin fir (de exemplu, BooksSerializer extinde JSONAPISerializer).
Serializatoare
Serializatorii va permit sa personalizati ce date i se returneaza raspunsul si sa aplicati transformari simple acestuia.
Atributele serializarii
In mod implicit, trebuie sa definiti o lista alba a tuturor atributelor care vor fi trimise inapoi cu raspunsul:
Daca modelul dvs. de utilizator include si un camp hashed_password, atunci serializatorul de mai sus ar elimina acest lucru din raspuns. Unul dintre avantaje aici este ca UserSerializer va rula ori de cate ori un utilizator este serializat, chiar daca este o inregistrare aferenta . In acest fel, nu trebuie sa va amintiti sa eliminati hashed_password pe fiecare traseu posibil din aplicatia dvs.
De asemenea, puteti personaliza modul in care datele din inregistrarile dvs. sunt serializate si ii puteti aplica transformari de baza:
Relatii serializante
De asemenea, puteti personaliza modul in care datele aferente sunt serializate cu inregistrarile dvs. Serializarea relatiilor este de obicei mult mai complexa decat atributele de baza, astfel incat sa puteti furniza propria configuratie pentru fiecare relatie pentru a decide cum este serializata.
Numai trei optiuni sunt acceptate de toate serializatoarele incorporate: tip (obligatoriu), strategie (obligatoriu) si serializator (optional):
Similar cu atributele, puteti efectua si transformari de baza ale relatiei si ale proprietatilor acesteia:
In cele din urma, unele serializatoare pot oferi mai multe optiuni pentru serializarea relatiilor. De exemplu, serializatorul JSONAPI accepta adaugarea de legaturi de relatie cu sarcina utila:
Consultati documentatia pentru fiecare serializator pentru optiunile disponibile.
Adaptor
Adaptoarele permit Blackburn-ului „sa vorbeasca aceeasi limba” ca si modelele dvs., indiferent de ce ORM utilizati. Daca Blackburn nu are inca un adaptor incorporat pentru ORM-ul dvs., nu va temeti – acestea sunt relativ simple de implementat: doar 4 metode.
Interfata pe care trebuie sa o implementeze un adaptor:
Asta este! Observati ca fiecare metoda accepta un argument final care este un hash de optiuni. Aceasta este optiunea hash pe care o treceti in res.render (sarcina utila, optiuni) de la handler-ul dvs. de traseu, deci daca trebuie sa personalizati functionalitatea dincolo de ceea ce permite blackburn-ul, aceasta este o „supapa de evacuare” usoara pentru a face fata asta.
Licenta
MIT © Dave Wasmer








