Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

184
Vistas
NodeJS: pase el valor del campo de ResolverQuery a otro archivo JS

Me gustaría saber cómo puedo pasar un valor de campo de QueryResolver a otro archivo JS (database.js) en GraphQL y NodeJS/Apollo. En el archivo base de datos.js me conecto con mi base de datos MYSQL con MariaDB y obtengo información de datos dinámicamente. La información debe ser obtenida por el ID que el usuario ingresa en la consulta. La identificación se conoce en mi QueryResolver, pero no sé cómo puedo pasar esta identificación a mi archivo database.js, para que mi usuario obtenga los datos que desea.

En lugar del 0 en el código, debe estar el ID que ingresó el usuario.

Lo que probé : traté de guardar la identificación en una variable y devolver la identificación Y los datos del artículo (estos son mis datos dinámicos que el usuario obtiene después de la consulta). Y traté de obtener acceso a la función get_result para obtener la identificación, pero luego me quedé atascado, porque no sé si podría acceder a esta función fuera de la consulta. ¿Alguien podría ayudarme por favor?

Mi resolución se ve así (este es mi problema):

 module.exports = { Query: { article: (parent, {id}) => { var data = models.articledata.find((c) => c.id == id); var id_work = id; function get_returns(){return [data, id_work];} var get_results = get_returns(); return get_results[0]; }, }, Node: { __resolveType(node) { if(node.toObject().name){ return 'Article'; } } } }

Este es mi data.js (en la carpeta Modelos):

 //This works fine! var read = function(){ return new Promise(function(resolve, reject){ var query_str = 'SELECT * FROM Artikel'; conn.query(query_str, function (err, rows, fields) { if (err) { return reject(err); } resolve(rows) }); }); } //Here I want to replace the 0 with the {id} of the resolver above->Problem how can I get a reference of the {id} from the resolver? var title = read().then(function(rows){return rows[0].NAME}); var articledatas = [{ title: title, }]; module.exports = { articledatas }; ```
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esta pregunta es un duplicado de Cómo devolver la respuesta de una llamada asincrónica en la mayor parte del tiempo. Por favor, lea la respuesta a la pregunta que me refiero.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Después de algunos intentos, descubrí que cuando pasé el código de mi data.js DIRECTAMENTE en la Consulta, entonces no tengo que pasar la ID fuera de la Consulta. Esto funciona:

 module.exports = { Query: { article: (parent, {id}) => { var read = function(){ return new Promise(function(resolve, reject){ var query_str = 'SELECT * FROM Artikel'; conn.query(query_str, function (err, rows, fields) { if (err) { return reject(err); } resolve(rows) }); }); } var title = read().then(function(rows){return rows[id].NAME}); var articledatas = [{ title: title, }]; return = articledata.find((c) => c.id == id); }, }, Node: { __resolveType(node) { if(node.toObject().name){ return 'Article'; } } } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda