Un set de componente si carlige pentru construirea aplicatiilor React care comunica cu Neo4j. Acesta este un pachet destinat accelerarii dezvoltarii prin reducerea cantitatii de cod de cazan necesare. Nu este destinat aplicatiilor publice / de productie utilizate de utilizatori externi.

Un exemplu de baza al acestei biblioteci a fost configurat in Graph App Starter Kit pentru depozitul de sabloane React.

Instalare

Utilizare

Crearea unei instante Driver

Daca doriti sa codificati acreditarile driverului in aplicatia dvs., puteti utiliza functia de ajutor createDriver pentru a crea o noua instanta Driver si sa o transmiteti la Neo4jProvider. Acest lucru va face ca componentele copil sa fie redate imediat.

importati {Neo4jProvider, createDriver} din ‘use-neo4j’ const driver = createDriver (‘neo4j’, ‘localhost’, 7687, ‘neo4j’, ‘letmein’) ReactDOM.render (<React.StrictMode> <Neo4jProvider driver = {driver }> <App /> </Neo4jProvider> </React.StrictMode>, document.getElementById (‘root’));

Formular de autentificare

Daca nu treceti o instanta de driver catre Neo4jProvider, va fi afisat un formular de conectare. Puteti transmite valorile implicite catre formular folosind recuzita:

importati {Neo4jProvider} din ‘use-neo4j’ ReactDOM.render (<React.StrictMode> <Neo4jProvider scheme = “neo4j + s” host = “myauradb.neo4j.io” port = “7687” username = “username” password = ” defaultpassword “database =” mydb “> <App /> </Neo4jProvider> </React.StrictMode>, document.getElementById (‘root’));

Ascundeti baza de date

Puteti ascunde campul bazei de date din formular trecand showDatabase prop cu o valoare false

<Neo4jProvider showDatabase = {false}>

Ascunde gazda

Puteti forta utilizatorul sa se conecteze la o anumita baza de date furnizand detaliile conexiunii la Neo4jProvider si setati showHost prop la false.

<Neo4jProvider scheme = “neo4j” host = “localhost” port = “7687” showHost = {false}>

Carlige

Cypher

Carligele de cifrare vor rula o interogare impotriva bazei de date Neo4j utilizand instanta driverului transmisa catre Neo4jProvider sau creata in timpul procesului de conectare. Fiecare carlig returneaza un Neo4jResultState care va ofera acces la un boolean de incarcare, rezultatul in sine, orice erori aruncate in timpul interogarii si ajutoare pentru accesarea primului rand.

export interfata Neo4jResultState {cypher: string; params ?: Inregistrati <string, any>; baza de date ?: sir; incarcare: booleana; eroare ?: Eroare; rezultat ?: QueryResult; inregistrari ?: Neo4jRecord []; primul ?: Neo4jRecord; run: (params ?: Record <string, any>, anotherDatabase ?: string) => Promite <void | QueryResult>; }

useReadCypher

useReadCypher (cypher: string, params ?: Record <string, any>, database ?: string): Neo4jResultState

Exemplu de cod:

function MyComponent () {const query = `MATCH (m: Movie {title: $ title}) RETURN m` const params = {title: ‘The Matrix’} const {loading, first} = useReadCypher (query, params) if ( incarcare) return (<div> Se incarca .

follando española jovencitas peludas follando
sexo muy duro ancianas españolas follando
se corre en el coño de su hija porno gratis viejas
me hace una paja sexo playa nudista
porno gay en castellano videos de maduras guarras
lesbianas cagando gitanas xxx
cincuentonas porno forzadas
trios con españolas intercambio de parejas en español
glory hole españa halle berry desnuda
videos porno abuelas potno
ver sexo gratis relatos sexo con maduros
brazzers online porno andaluz
peliculas eroticas gratis madura se corre
porno hat casadas cachondas
porno traducido al español parejas liberales españolas
españolas pajeandose maduras pajeando
folladas caseras reales super mamadas
shakira follando actores porno gay españoles
coños peludos rubios potro de bilbao
fontanero cachondo seso gratis

.. </div>) // Obtineti `m` din primul rand const movie = first.get (‘m’) return (<div> {movie.properties.title} a fost lansat in {movie.properties.year} </div>)}

useWriteCypher

useWriteCypher (cypher: string, params ?: Record <string, any>, database ?: string): Neo4jResultState

Relansarea unei interogari

Functia de rulare va permite sa rulati din nou o interogare daca se schimba un prop. Acest lucru ar trebui sa fie infasurat intr-o functie useEffect.

const [query] = useState (‘Matrix’) const {loading, records, run,} = useReadCypher (‘MATCH (m: Movie) WHERE m.title CONTAINS $ query RETURN m LIMIT 12’, {query}) // Ascultati pentru modificari la `interogare` si re-rulati cifru daca se schimba ceva useEffect (() => {rula ({interogare})}, [interogare])

Interogari lenese

Daca nu doriti ca interogarea sa ruleze imediat (de exemplu o interogare de actualizare), puteti utiliza functiile useLazyReadCypher sau useLazyWriteCypher. Carligele returneaza o matrice care contine functia de a rula interogarea si Neo4jResultState ca al doilea parametru:

const [updateMovie, {loading, first}] = useLazyWriteCypher (`MATCH (m: Movie) WHERE id (m) = $ id SET m + = $ updates, m.updatedAt = datetime () RETURN m.updatedAt as updatedAt`) const handleSubmit = e => {e.preventDefault () updateMovie ({id: int (0), updates: {title, plot}}) .then (res => {res && setConfirmation (`Nod actualizat la $ {res. records [0] .get (‘updatedAt’). toString ()} `)}) .catch (e => setError (e))} return (<Buton principal onClick = {handleSubmit}> Actualizare nod </Button>)

Functia de rulare ia doua argumente optionale: un obiect al parametrilor si o baza de date daca este diferita de cea implicita.

Tranzactii

Carligele de tranzactii va ofera un mod convenabil de a deschide o noua tranzactie.

interfata de export TransactionState {transaction: Transaction; run: Function, rollback: Function,}

useReadTransaction

useReadTransaction (baza de date ?: sir): TransactionState

useWriteTransaction

useWriteTransaction (baza de date ?: sir): TransactionState

Exemplu:

importati {useReadTransaction} din ‘use-neo4j’ const {transaction, commit, rollback} = useTransaction (‘mydb’) fetchSomeData () .then (properties => {// Utilizati `run` pentru a executa o interogare in cadrul returnarii tranzactiei (`CREATE (n: Node) SET n + = $ properties`, {properties}) // Daca totul este in regula, comiteti tranzactia .then (() => commit ())}) // Daca ceva nu merge bine, poate readuce tranzactia .catch (e => rollback ())

Scheme Carlige

useSchema

Nota: necesita APOC

Carligul useSchema apeleaza procedura apoc.meta.schema si returneaza matrici de etichete si tipuri de relatii.

Utilizare:

const {incarcare, etichete, tipuri} = useSchema (baza de date)

Iesire:

interfata de export UseSchemaOutput {loading: boolean; etichete: LabelSchema []; tipuri: RelationshipTypeSchema []; }

utilizati baze de date

Carligul useDatabases returneaza o lista de baze de date pentru conexiunea curenta (versiunea 4.0 si mai mare). Carligul executa interogarea SHOW DATABASES in baza de date a sistemului si returneaza o lista de baze de date.

const {incarcare, eroare, baze de date} = useDatabases ()

Iesire:

interfata UseDatabasesOutput {loading: boolean; eroare ?: Eroare; baze de date: Database [] | nedefinit}

Un obiect de baza de date consta din:

interfata Baza de date {nume: sir; adresa: sir; rol: DatabaseRole; requiredStatus: DatabaseStatus; currentStatus: DatabaseStatus; eroare: sir; implicit: boolean; }