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

319
Views
¿Cómo escribir una consulta MySQL común que devolverá el resultado cuando se llame desde la función API en NodeJS?

En este momento, cada vez que quiero ejecutar una consulta mysql en mis funciones api, creo una conexión DB, luego ejecuto la consulta y libero la conexión para cada función api. El código se vuelve más complicado cuando se debe ejecutar una consulta de base de datos anidada e incluso pensé en problemas de rendimiento ya que las conexiones se crean y liberan continuamente. Esta es mi implementación actual

servidordb.js

 const db = mysql.createPool({ connectionLimit: 100, host: DB_HOST, user: DB_USER, password: DB_PASSWORD, database: DB_DATABASE, port: DB_PORT }) module.exports = db

app.js (archivo principal)

 const express = require("express") const app = express() app.use(express.json()) const db = require('./dbServer') require('./Backend/Routes/ApifileName')(app , db); const port = process.env.PORT app.listen(port)

ApiFileName.js

 const mysql = require("mysql") const auth = require("../Middlewares/VerifyMerchantAuth") module.exports = function(app , db){ app.post("/v1/route" ,auth, async(req , res) => { let someParam= req.body.someParam; let sql_command = "SELECT * from table_Name where column_name = ?" let sql_query = mysql.format(sql_command,[someParam]) db.getConnection ( async (err, connection)=> { if (err) throw err; await connection.query (sql_query, async (err, result) => { connection.release(); if (err) throw err; if(result.length == 0){ return res.json({error : "some error"}) } return res.json({result : "some result"}); }) }) }) }

Jerarquía de mis archivos

 node_modules package.json app.js dbServer.js Backend -> 1. Routes -> ApiFileName.js 2. Middlewares -> Here I want to write this sql function

Mi requisito ahora es que necesito escribir una función común que tome db y sql_query como parámetros y debería devolver una respuesta en caso de éxito o error.

Lo probé yo mismo, pero la respuesta de mysql llega después de que la API devuelve su respuesta. Intenté usar await , .then() pero nada funcionó.

¿O este método implementado actualmente ya es eficiente? Da tus puntos de vista.

Por favor ayúdenme y gracias de antemano

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Una nueva conexión para cada consulta SQL es terrible para el rendimiento. Tener una única conexión para toda la invocación de la aplicación. Eso puede implicar tener un lugar "global" o "estático" para sostener el "mango" de la conexión.

Si está en un entorno web, no puede mantener la conexión de una "página web" a la siguiente. Simplemente suéltelo y vuelva a conectarse en la página siguiente.

No te preocupes por las "piscinas"; compraron suficiente rendimiento para preocuparse.

Hay un caso raro en el que necesita más de una "conexión" en una aplicación, si está hablando con diferentes servidores . Dentro de un solo servidor, una conexión puede interactuar con todas las bases de datos y tablas (que tiene permiso para tocar).

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!