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

262
Views
Los disparadores de MongoDB Atlas no funcionan con el controlador Neo4j

Mi objetivo es crear disparadores Atlas para sincronizar mi base de datos MongoDB con una base de datos Neo4j (Aura). La función que escribí funciona bien en mi computadora, sin embargo, cuando el disparador la llama, arroja este error:

 TypeError: Configured resolver function should either return an array of addresses or a Promise resolved with an array of addresses.Each address is '<host>:<port>'. Got: [object Promise]

Esta es la función:

 (async () => { const neo4j = require("neo4j-driver"); const uri = "neo4j+s://d3dc4645.databases.neo4j.io"; const user = "neo4j"; const password = "..."; const driver = neo4j.driver(uri, neo4j.auth.basic(user, password)); const session = driver.session(); const id = "TEST" const writeQuery = `MERGE (p1:User {id:$id })`; await session.writeTransaction((tx) => tx.run(writeQuery, { id })); await driver.close(); })();

En el disparador es así (esto no funciona):

 exports = async function(changeEvent) { const neo4j = require("neo4j-driver"); const uri = "neo4j+s://d3dc4645.databases.neo4j.io"; const user = "neo4j"; const password = "..."; const driver = neo4j.driver(uri, neo4j.auth.basic(user, password)); const session = driver.session(); const id = "TEST" const writeQuery = `MERGE (p1:User {id:$id })`; await session.writeTransaction((tx) => tx.run(writeQuery, { id })); await driver.close(); };

Sinceramente, no tengo ni idea de cuál es el problema. Puedo suponer que deriva de alguna incompatibilidad de esa dependencia o, en todo caso, está ligado a la forma en que se gestionan las promesas. ¿Qué estoy haciendo mal?

Sigue siendo un problema limitante para mí...

Actualización después de la respuesta de @NBekelman.

Ya intenté en los días siguientes cambiar el código pero, lamentablemente, el mensaje de error siempre es el mismo.

 exports = function(changeEvent) { [...] const driver = neo4j.driver(uri, neo4j.auth.basic(user, password)); const session = driver.session({ defaultAccessMode: neo4j.session.WRTIE }); console.log(session); // <-- so far so good const writeQuery = `MERGE (p1:User {id:"TEST" })`; session.run(writeQuery) // <-- error .then(result => { console.log(result); }) .then(() => session.close()); driver.close(); };
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Está devolviendo una Promesa, pero la función que está utilizando espera un valor (por el error, el tipo debe ser <host>:<port> ;

También creo que deberías usar

 module.exports = ... // default exports exports.handler = ... // named exports

módulo exporta nodejs

Publique el consumidor de esta función para obtener más ayuda si es necesario.

about 4 years ago · Santiago Trujillo 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!