Ich versuche herauszufinden, wie ich meine Anwendung so strukturieren kann, dass MySQL auf effizienteste Weise verwendet wird. Ich verwende das Node-MySQL-Modul. Andere Threads hier schlugen vor, Verbindungspooling zu verwenden, also richtete ich ein kleines Modul mysql.js ein
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : 'root',
database : 'guess'
});
exports.pool = pool;
Wann immer ich MySQL abfragen möchte, benötige ich dieses Modul und frage dann die Datenbank ab
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);
})
})
}
Ist das ein guter Ansatz? Ich konnte nicht wirklich viele Beispiele für die Verwendung von MySQL-Verbindungen finden, außer einer sehr einfachen, bei der alles im Skript main app.js ausgeführt wird, sodass ich die Konventionen / Best Practices nicht wirklich kenne.
Sollte ich nach jeder Abfrage immer connection.end () verwenden? Was ist, wenn ich es irgendwo vergesse?
Wie schreibe ich den Exportteil meines MySQL-Moduls neu, um nur eine Verbindung zurückzugeben, damit ich nicht jedes Mal getConnection () schreiben muss?
connection.query
überall in meinem Code" - es ist wahrscheinlich Zeit für eine Umgestaltung. Erstellen Sie eine Datenbank - Abstraktions Klasse, die Angeboteselect
,insert
,update
, usw. - und nur verwendenconnection
(oderpool
innerhalb dieser einzigen db - Klasse) ...