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

187
Views
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 answers
Answer question

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 Report

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 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!