jsonmonger este un strat de abstractizare intre aplicatia dvs. si serverul dvs. compatibil json: api. Ganditi-va la asta ca la un ORM pentru json: back-end compatibil cu API.

Introducere

json: api este fantastic, dar lucrul cu acesta din codul aplicatiei poate fi putin provocator:

  • are o structura de date rigida si profunda asupra careia probabil aveti foarte putin control, daca exista
  • navigarea datelor conexe poate fi implicata
  • crearea de cereri pentru manipularea datelor de pe server poate fi foarte detaliata

jsonmonger abstractizeaza toata aceasta complexitate, permitandu-va sa scrieti cod expresiv care se concentreaza pe logica de afaceri, nu pe tranzactiile API.

Utilizare

Instalati jsonmonger cu npm sau fire:

instalati npm – salvati jsonmonger // sau … yarn add jsonmonger

Modele

jsonmonger expune un constructor Model. Cu aceasta, puteti defini un obiect cu care sa gestionati toate inregistrarile de un anumit tip. Sa presupunem ca aplicatia noastra catalogeaza romanele stiintifico-fantastice si autorii lor; s-ar putea sa scrieti un model de Autor ca acesta:

// my_app / models / Author.js const Model = require (‘jsonmonger’). Model; const Autor = model nou ({// Spuneti-i lui Jsonmonger care tip de obiect json: api ar trebui // tratat cu acest model si unde sa efectuati cereri pentru acesta. tip: „utilizator”, punct final: „/ utilizatori”, // Harta json : api atribute destul de simplu. prenume: ‘atribute.first_name’, prenume: ‘attribute.last_name’, dateOfBirth: ‘attribute.date_of_birth’, // Functiile functioneaza atat ca functii getter cat si setter. fullName: value => {if (value ) {const splitName = value.split (”, 2); this.firstName = split [0]; this.lastName = split [1]; return fullName;} else {return `$ {this.firstName} $ {this .lastName} `;}}, // Relatiile sunt mapate la fel ca atributele. carti: ‘relationss.books_authored’,});

Acum putem folosi acel model pentru a gestiona inregistrari in serverul nostru compatibil json: api. Sa presupunem ca vrem sa cream o inregistrare pentru China Mieville, s-ar putea sa avem un controler create_author cu urmatorul cod:

// my_app / controllers / create_author.js const Author = require (‘.

incesto en espanol folladas caseras reales
videos sexo español pajas en español
fakings.tv coños ricos
mujeresfollando incesto lesbianas
folladas extremas brutal tops
sione cooper casadas españolas follando
gorditas tetonas mamadas de polla
porno espania sexo hd
joven folla por dinero porno france
vidiosxxx peliculas eroticas italianas
como folla mi vecina xxxespañol
abuelasputas incestoxxx
padre se folla a su hija follando con mi mujer
vídeos de sexo gratis videos xxx violadas
analxxx peliculas porno castellano
pilladas desnudas españolas masturbandose
pelis porno españolas abuela porno
forzadas a follar muy maduras follando
porno viejas en español fiestas xxx
videos porno para mujeres gratis mi mujer me folla el culo

./ models / Author’); // Creati o noua inregistrare pentru un autor. const china = new Author ({fullName: ‘China Mieville’,}); // Salvarea inregistrarii face o cerere catre serverul json: api, // returnarea unei promisiuni JavaScript. In acest caz, Jsonmonger // poate spune ca este o inregistrare noua, deci face o cerere POST. china.save ();

Este posibil sa avem nevoie sa editam inregistrarea Chinei la un moment dat, asa ca sa presupunem ca avem un controler edit_author in aplicatia noastra cu urmatorul cod:

// my_app / controllers / edit_author.js // Efectuati modificari inregistrarii dvs. asa cum ati face orice obiect JS // si Jsonmonger il va stoca in locatia corespunzatoare. china.dateOfBirth = new Date („6 septembrie 1972”); // Jsonmonger stie ca aceasta este o inregistrare existenta, asa ca face o cerere // PATCH, conform specificatiilor json: api. china.save ();

Dar ce zici de relatii? jsonmonger face acest lucru simplu:

// my_app / controllers / edit_author.js const Author = require (‘../ models / Author’); const Book = require (‘../ models / Book’); // Obtineti o inregistrare existenta pentru Kraken. const kraken = asteapta o carte noua ({id: ‘kraken_id’, // presupunand ca stim asta}). fetch (); // Creati un nou record pentru The City & the City. const theCity = await new Book ({title: ‘The City & the City’, yearPublished: ‘2009’,}). save (); // Aduceti inregistrarea Chinei si adaugati carti la ea. const china = await new Author ({id: ‘china_id’, // presupunand ca stim asta}). fetch (); china.books = [kraken, theCity]; // O cerere PATCH se face actualizand relatia. china.save ();

De asemenea, putem actualiza inregistrarile aferente, daca este necesar. Sa presupunem ca un utilizator trebuie sa actualizeze inregistrarea acestui recensator pentru a-l clasifica corect ca roman, nu ca roman. Deoarece jsonmonger incarca relatiile cu modelele respective (daca este disponibila una pentru acel tip), puteti edita cartea in loc si o puteti salva.

// my_app / controllers / edit_author.js const Author = require (‘../ models / Author’); const china = await new Author ({id: ‘china_id’, // presupunand ca stim asta}). fetch (); const censusTaker = china.books.find (book => book.title === ‘This Census-Taker’); censusTaker.category = ‘novela’; censusTaker.save ();

Si, in cele din urma, puteti sterge inregistrarile de pe serverul dvs. json: api asa:

nou autor ({id: ‘china_id’}). destroy ();