Próbuję dowiedzieć się, jak zorganizować strukturę mojej aplikacji, aby korzystać z MySQL w najbardziej efektywny sposób. Używam modułu node-mysql. Inne wątki sugerowały użycie buforowania połączeń, więc skonfigurowałem mały moduł mysql.js
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : 'root',
database : 'guess'
});
exports.pool = pool;
Teraz za każdym razem, gdy chcę odpytać mysql, potrzebuję tego modułu, a następnie odpytuję bazę danych
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);
})
})
}
Czy to dobre podejście? Nie mogłem znaleźć zbyt wielu przykładów użycia połączeń mysql poza bardzo prostym, w którym wszystko odbywa się w głównym skrypcie app.js, więc tak naprawdę nie wiem, jaka jest konwencja / najlepsze praktyki.
Czy po każdym zapytaniu powinienem zawsze używać connection.end ()? A jeśli gdzieś o tym zapomnę?
Jak przepisać część eksportu mojego modułu mysql, aby zwracała tylko połączenie, aby nie musieć za każdym razem pisać getConnection ()?
connection.query
w kodzie całe miejsce” - prawdopodobnie czas na refaktoryzację. Budowanie bazy danych klasy abstrakcji, że ofertyselect
,insert
,update
itp - i tylko do użytkuconnection
(lubpool
) w ramach tej jednej klasy db ...