Я пытаюсь понять, как структурировать свое приложение для наиболее эффективного использования MySQL. Я использую модуль node-mysql. Другие потоки здесь предложили использовать пул соединений, поэтому я установил небольшой модуль mysql.js
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : 'root',
database : 'guess'
});
exports.pool = pool;
Теперь, когда я хочу запросить mysql, мне нужен этот модуль, а затем запрашиваю базу данных
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);
})
})
}
Это хороший подход? Я не смог найти слишком много примеров использования соединений mysql, кроме очень простого, где все делается в основном сценарии app.js, поэтому я действительно не знаю, каковы соглашения / лучшие практики.
Должен ли я всегда использовать connection.end () после каждого запроса? Что, если я где-нибудь об этом забуду?
Как переписать часть экспорта моего модуля mysql, чтобы возвращать только соединение, чтобы мне не приходилось каждый раз писать getConnection ()?
connection.query
моем коде есть все места» - вероятно, пришло время провести рефакторинг. Построить класс абстракции базы данных , которая предлагаетselect
,insert
,update
и т.д. - и только использоватьconnection
(илиpool
) в пределах этого одного класса дб ...