Node.js - Problema función mysql

 
Vista:
sin imagen de perfil
Val: 16
Ha mantenido su posición en Node.js (en relación al último mes)
Gráfica de Node.js

Problema función mysql

Publicado por Marcelo (11 intervenciones) el 07/05/2020 17:04:07
Hola:
Estoy haciendo una conexión a base mysql en node js para transmitir después a la web (ejcs) pero la función no me devuelve el resultado de la consulta.
Mejor dicho, a la mitdad de la función sí la devuelve pero después me da undefined.ç

Desde ya muchas gracias al que me pueda ayudar.
Codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000;
let pruebaSql=require("./Prueba-sql");
let scripts= require("./scripts");
let resultado;
let mysql = require('mysql');
 
  // Parámetros de conexión a la base de datos.
 
  var con = mysql.createConnection({
    host: "localhost",
    user: "base",
    password: "clave",
    database : 'biblioteca'
  })
  con.connect(function(error){
    if(error){
       throw error;
    }else{
       console.log('Conexion correcta2.');
    }
 });
 
//resultado=pruebaSql.Listar(resultado);
let Nombre = 'Marcelo'
let results;
 
express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/',(req,res) => {
    con.query("select * from Circulares limit 10",
    function(err,results,fields) {
       if (err) throw err;
      resultado=results;
 
      // Acá me muestra el resultado de la consulta
 
      console.log('Medio:'+resultado[1].Titulo);
    })
 
    // pero acá sale undefined (no sé por qué la variable no mantiene el contenido)
 
console.log('Resultados:' + resultado);
 
    res.render('pages/index',{Base:resultado,name:Nombre});
  })
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de aberon10
Val: 31
Ha mantenido su posición en Node.js (en relación al último mes)
Gráfica de Node.js

Problema función mysql

Publicado por aberon10 (10 intervenciones) el 07/05/2020 19:21:05
Hola, recuerda que el callback se ejecuta de manera asíncrona, por lo que la variable resultado en ese punto no existe. Deberías llamar a él método render dentro de el callback o si no puedes usar también async/await
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha mantenido su posición en Node.js (en relación al último mes)
Gráfica de Node.js

Problema función mysql

Publicado por Marcelo Brasburg (11 intervenciones) el 07/05/2020 19:31:50
Muchas Gracias.
Soy muy nuevo en esto, te consulto: Cómo llamo dentro de callback o dónde pongo async/await?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de aberon10
Val: 31
Ha mantenido su posición en Node.js (en relación al último mes)
Gráfica de Node.js

Problema función mysql

Publicado por aberon10 (10 intervenciones) el 07/05/2020 19:47:12
1
2
3
4
5
6
7
8
get('/',(req,res) => {
    con.query("select * from Circulares limit 10",
    function(err,results,fields) {
       if (err) throw err;
      resultado=results;
      console.log('Medio:'+resultado[1].Titulo);
      console.log('Resultados:' + resultado);      res.render('pages/index'{Base:resultado,name:Nombre})
    });
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 16
Ha mantenido su posición en Node.js (en relación al último mes)
Gráfica de Node.js

Problema función mysql

Publicado por Marcelo (11 intervenciones) el 07/05/2020 22:53:55
Impecable, muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar