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

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

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 Report

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