Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

258
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda