Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

699
Visualizações
Conectar AWS RDS con error de Node JS: no se puede leer la propiedad 'consulta' de indefinido

Estaba intentando conectar AWS RDS con mi aplicación Node JS. Probé la conexión de RDS con MySQLWorkbench y se pudieron recuperar los datos. Sin embargo, al intentar obtener una conexión en mi aplicación Node, recibí un error:

 TypeError: Cannot read property 'query' of undefined

Mi código de Node JS es el siguiente:

 const express = require('express'); const cors = require('cors'); const mysql = require('mysql'); const app = express(); const SELECT_ALL_QUERY = 'SELECT * FROM `my-schema`.`my-table`;'; app.use(cors()); app.get('/', (req, res) => { res.send('go to /my-table to see contents') }); const pool = mysql.createPool({ connectionLimit: 10, host: "process.env.myHostname", user: 'process.env.myUsername', password: 'process.env.myPassword', port: "process.env.3306", database: 'my-schema', debug: false }); pool.getConnection((err, connection) => { app.get('/my-table', (req, res) => { console.log(connection); connection.query(SELECT_ALL_QUERY, (err, results) => { if (err) { return res.send(err) } else { return res.json({ data: results }) }; }); }); }); let port = process.env.PORT || 4000; app.listen(port, () => { console.log(`App running on port ${port} `); });

Por lo que parece, la conexión no estaba definida, ¿no se pudo conectar? Si es así, ¿por qué puedo ver los datos en MySQLWorkbench?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

2 cosas:

Primero, está creando un grupo con valores no válidos. Este:

 const pool = mysql.createPool({ connectionLimit: 10, host: "process.env.myHostname", user: 'process.env.myUsername', password: 'process.env.myPassword', port: "process.env.3306", database: 'my-schema', debug: false });

DEBE ser esto:

 const pool = mysql.createPool({ connectionLimit: 10, host: process.env.myHostname, user: process.env.myUsername, password: process.env.myPassword, port: process.env.myPort, database: 'my-schema', debug: false });

En segundo lugar, ¿cómo se ve err cuando console.log(err) 'd? Cambia esta parte:

 pool.getConnection((err, connection) => { app.get('/my-table', (req, res) => { console.log(connection); connection.query(SELECT_ALL_QUERY, (err, results) => { if (err) { return res.send(err) } else { return res.json({ data: results }) }; }); }); });

A esto:

 pool.getConnection((err, connection) => { if (err) { return console.log('ERROR!', err); } if (!connection) { return console.log('No connection was found.'); } app.get('/my-table', (req, res) => { connection.query(SELECT_ALL_QUERY, (err, results) => { if (err) { return res.send(err) } return res.json({ data: results }); }); }); });
over 4 years ago · Santiago Trujillo Relatório

0

Hermano, si usará el método createPool() con process.env, no olvide crear un archivo .env en el proyecto raíz y declarar las variables myHostname, myUsername, myPassword y myPort. Pero para que pruebes tu conexión más fácilmente usa esto:

 const mysql = require('mysql'); const connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'secret', database : 'your_database' }); connection.connect(); connection.query('SELECT * FROM `my-schema`.`my-table`', function (error, results, fields) { if (error) throw error; console.log(results); }); connection.end();

over 4 years ago · Santiago Trujillo Relatório

0

TypeError: Cannot read property 'query' of undefined

El error anterior no es el error real, ya que esto ocurre durante el tiempo de consulta, mientras que debería detectar el error durante el tiempo de conexión. Una vez que la solución que publicó @NeoNexus DeMortis al hacer esto, obtendrá el error real.

Pero recomendaré verificar la conexión de la base de datos en el inicio de la aplicación para que al menos la aplicación verifique y espere la conexión de la base de datos antes de atender la solicitud del usuario y también evitará que la aplicación entre en un estado roto.

 pool.getConnection((err, connection) => { if (err) console.log(err) else{ console.log("DB connected successfully host:",connection.config.host," DB:",connection.config.database) app.emit('ready'); } }); app.on('ready', function() { let port = process.env.PORT || 4000; app.listen(port, () => { console.log(`App running on port ${port} `); }); });

En un esfuerzo por mantener las cosas simples y concisas, muchos tutoriales pasan por alto uno de los aspectos más humanos e intuitivos del desarrollo de JavaScript con node. EventEmitter del nodo.

esperando-las-conexiones-db-antes-de-la-aplicación-escuchar-en-el-nodo

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda