Sto cercando di capire come strutturare la mia applicazione per utilizzare MySQL in modo più efficiente. Sto usando il modulo node-mysql. Altri thread qui hanno suggerito di utilizzare il pool di connessioni, quindi ho impostato un piccolo modulo mysql.js
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : 'root',
database : 'guess'
});
exports.pool = pool;
Ora ogni volta che voglio interrogare mysql ho bisogno di questo modulo e quindi interrogare il database
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);
})
})
}
È un buon approccio? Non sono riuscito a trovare troppi esempi di utilizzo di connessioni mysql oltre a quello molto semplice in cui tutto è fatto nello script principale di app.js, quindi non so davvero quali siano le convenzioni / migliori pratiche.
Devo sempre usare connection.end () dopo ogni query? E se me ne dimentico da qualche parte?
Come riscrivere la parte delle esportazioni del mio modulo mysql per restituire solo una connessione in modo da non dover scrivere getConnection () ogni volta?
connection.querytutto il posto nel mio codice" - è probabilmente il momento di eseguire il refactoring. Costruire una classe di astrazione del database che offreselect,insert,update, ecc - e solo utilizzanoconnection(opool) all'interno di tale singola classe db ...