Estoy tratando de averiguar cómo estructurar mi aplicación para usar MySQL de la manera más eficiente. Estoy usando el módulo node-mysql. Otros hilos aquí sugirieron usar la agrupación de conexiones, así que configuré un pequeño módulo mysql.js
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : 'root',
database : 'guess'
});
exports.pool = pool;
Ahora, cada vez que quiero consultar mysql, necesito este módulo y luego consultar la base de datos
var mysql = require('../db/mysql').pool;
var test = function(req, res) {
mysql.getConnection(function(err, conn){
conn.query("select * from users", function(err, rows) {
res.json(rows);
})
})
}
¿Es este un buen enfoque? Realmente no pude encontrar demasiados ejemplos de uso de conexiones mysql además de uno muy simple donde todo se hace en el script principal de app.js, así que realmente no sé cuáles son las convenciones / mejores prácticas.
¿Debo usar siempre connection.end () después de cada consulta? ¿Qué pasa si lo olvido en alguna parte?
¿Cómo reescribir la parte de exportaciones de mi módulo mysql para devolver solo una conexión para no tener que escribir getConnection () cada vez?
connection.query
todo el lugar en mi código", probablemente sea el momento de refactorizar. Construir una clase de abstracción de base de datos que ofreceselect
,insert
,update
, etc - y sólo utilizanconnection
(opool
) dentro de esa clase db sola ...