Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

232
Views
Fauna: Seleccione de puro JS

Estoy interesado en usar Fauna desde el navegador de JS puro en modo de solo lectura. O la documentación oficial carece de información comprensible para este caso o no puedo resolverlo. Por favor, ayúdame a entender.

Estoy tratando de ejecutar tal consulta:

 Map(Paginate(Documents(Collection('spells'))), Lambda('x', Get(Var('x'))));

Ejecutar esta consulta desde el shell me da el resultado.

Quiero enviar esta consulta a la variable de JavaScript. Pero no entiendo qué hacer. Aquí está mi código:

 var client = new faunadb.Client({ secret: '320438826900127936', keepAlive: false, domain: 'db.eu.fauna.com', // NOTE: Use the correct domain for your database's Region Group. port: 443, scheme: 'https', }); var helper = client.paginate( q.Match( q.Index('spells'), '101' ) ) paginate.then(function(response) { console.log(response.ref) // Would log the ref to console. })

Por favor, ayúdenme a obtener resultados de la base de datos usando JavaScript puro.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Usando el controlador de JavaScript, todas las funciones de FQL están en el espacio de nombres faunadb.query . Por lo general, los desarrolladores harían esto en la parte superior de sus scripts:

 const faunadb = require('faunadb') const q = faunadb.query

Después de eso, se puede acceder a las funciones FQL usando el objeto q . Por ejemplo: q.Add(1, 2) .

De lo contrario, puede usar la desestructuración para importar funciones FQL al espacio de nombres del script, así:

 const faunadb = require('faunadb') const { Documents, Collection, Get, Index, Lambda, Match, Paginate } = faunadb.query

y luego puede llamar a las funciones FQL "directamente", por ejemplo, Add(1, 2) .

Si usa la desestructuración, asegúrese de importar todas las funciones de FQL que pretende usar en sus consultas. No todas las funciones de FQL se pueden importar "tal cual", ya que algunos de sus nombres colisionarían con los nombres de JavaScript integrados, como Function . Para esos, tienes que asignarlos directamente:

 const FaunaFunction = faunadb.query.Function

Y luego use el nombre local que especificó ( FaunaFunction en este caso) al redactar consultas.

De cualquier manera, la consulta en sí no se envía a Fauna hasta que se llama a la client.query() , o en su caso, client.paginate() .

Eso significa que puede asignar las llamadas a la función FQL a las variables de JavaScript. Con la consulta deseada, podría verse así:

 const spellsQuery = q.Map( q.Paginate( q.Documents(q.Collection('spells')) ), q.Lambda('x', q.Get(q.Var('x'))) )

Entonces puedes hacer esto:

 client.query(spellsQuery) .then(res => console.log(res))

Puede usar client.paginate si solo está realizando la paginación. Su consulta deseada llama a Map , por lo que el ayudante de client.pagination se interpone en su camino. Mi ejemplo usa client.query .

Tenga en cuenta que cuando configura su objeto de conexión de cliente, no necesita especificar las opciones de port y scheme ; ya está utilizando los valores predeterminados. Y es probable que no deba cambiar la opción keepAlive a menos que su flujo de trabajo lo requiera específicamente.

Además, veo que no incluiste un secreto real en tu ejemplo, lo cual es bueno: si incluyeste un secreto real, cualquier persona con ese secreto podría acceder a tu base de datos como tú.

Si desea ver una aplicación completa (pero simple) basada en Fauna que se ejecuta en una página web, consulte: https://github.com/fauna-labs/todo-vanillajs

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!