Ich versuche herauszufinden, wie ich meine Anwendung strukturieren kann, um MySQL möglichst effizient zu nutzen. Ich benutze das Modul node-mysql. Andere Threads hier vorgeschlagen Connection-Pooling zu verwenden, damit ich ein wenig Modul bis mysql.jsnode.js + mysql connection pooling
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : 'root',
database : 'guess'
});
exports.pool = pool;
Nun, wenn ich mysql abfragen möchten benötige ich dieses Modul und dann fragen Sie die databse
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 guter Ansatz? Ich konnte nicht wirklich viele Beispiele für die Verwendung von mysql-Verbindungen finden, abgesehen von einer sehr einfachen, bei der alles im Haupt-Script von app.js gemacht wird, so dass ich nicht wirklich weiß, was die Konvention/Best Practices sind.
Sollte ich connection.end() nach jeder Abfrage immer verwenden? Was, wenn ich es irgendwo vergesse?
Wie umschreiben Sie den Exportteil meines mysql-Moduls, um nur eine Verbindung zurückzugeben, also muss ich getConnection() nicht jedes Mal schreiben?
nur auf ein Heads. Es ist 'connection.release();' jetzt für Pools. – sdanzig
Das stimmt.Ich habe es geändert. – Klaasvaak
Auch, wenn ich kann, würde ich vorschlagen, ein Versprechen statt Rückruf zu verwenden, aber das ist nur eine Vorliebe ... großartige Lösung dennoch – Spock