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

359
Vistas
¿Cómo obtener datos de múltiples modelos en un solo controlador en NodeJS?

Estoy trabajando en nodejs y estoy usando el marco "Express js", estoy trabajando en Controller y estoy tratando de obtener datos de "dos funciones de modelo" pero recibo el mensaje "anónimo", ¿Cómo puedo obtener datos de múltiples? funciones modelo", Aquí está mi código,

  • Este es mi controlador de casa
 homeController.index = function (req, res, next) { // fetching data into 'data variable' from FetchRecords model homeModel.FetchRecords(function (err, data) { if (err) { req.flash('error', 'There was no records.'); } else { res.render('home/index', { data: data }); } }); homeModel.getAverage(function (average) { console.log(average); // res.render('home/index',{data:average}); }); };
  • Este es mi modelo de casa
 homeModel.FetchRecords = function (data) { sql.query('SELECT * FROM rating', function (err, res) { if (err) { return data(err, null); } else { return data(null, res); } }); }; homeModel.getAverage = function (average) { console.log(average); sql.query('SELECT avg(value) FROM rating', function (err, res) { if (err) { return average(err, null); } else { return average(null, res); } }); };
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Dentro de homeModel solo crea 1 función en lugar de 2 por separado. Puede combinar ambas consultas MySQL en una como esta.

 const FetchRecordsAndAverage = function (data) { sql.query('SELECT * FROM rating; SELECT avg(value) FROM rating', function (err, res) { if (err) { return data(err, null); } else { return data(null, res); } }); }; module.exports = { FetchRecordsAndAverage }

Con esto, obtendrá datos combinados de ambas consultas como matrices dentro de la matriz. Se puede acceder al resultado de las consultas como datos[0] y datos[1].

over 4 years ago · Santiago Trujillo Denunciar

0

Debe exportar la función desde el modelo de inicio:

 const FetchRecords = function (data) { sql.query('SELECT * FROM rating', function (err, res) { if (err) { return data(err, null); } else { return data(null, res); } }); }; const getAverage = function (average) { console.log(average); sql.query('SELECT avg(value) FROM rating', function (err, res) { if (err) { return average(err, null); } else { return average(null, res); } }); }; module.exports = { FetchRecords, getAverage }

Y recupéralas en tu aplicación llamando a:

 const { FetchRecords, getAverage } = require('./path/to/home_model');
over 4 years ago · Santiago Trujillo 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