@timofy

Как лучше открывать и закрывать соединение с MySQL из NodeJs?

Всем привет.
В проекте, который на сервере использует NodeJs+Express открытие и закрытие соединения с MySql я организовал примерно вот так:

var config = {
    host     : 'localhost',
    user     : 'db_user',
    password : '11111',
    database : 'db_name'
};

app.get("/query-url", function (request, response) {
        var db = mysql.createConnection(config);
        db.connect(function (err) {
               if (err) {
                     console.error('error connecting: ' + err.stack);
                     return;
               }
               console.log('connected as id ' + db.threadId + ' 1');
        });

        db.query("SELECT * FROM table_name Where id>0", function (err, rows, fields) {
             if (err) return console.log(err);
              response.send(rows);
        });
        db.end();
};


то есть соединение с MySQL и его закрытие прописано у меня для каждого запроса к серверу. И у меня соответственно вопрос: можно ли один раз открыть соединение с БД MySql и не закрывать его или будут проблемы (перегрузка на соединение, открытость для доступа извне и т.п.) ?

То-есть можно ли написать вот так ?
var config = {
    host     : 'localhost',
    user     : 'db_user',
    password : '11111',
    database : 'db_name'
};
var db = mysql.createConnection(config);
db.connect(function (err) {
     if (err) {
           console.error('error connecting: ' + err.stack);
           return;
     }
     console.log('connected as id ' + db.threadId + ' 1');
});

app.get("/query-url", function (request, response) {
        db.query("SELECT * FROM table_name Where id>0", function (err, rows, fields) {
              if (err) return console.log(err);
              response.send(rows);
        });
};
  • Вопрос задан
  • 527 просмотров
Решения вопроса 1
Negezor
@Negezor
Senior Shaurma Developer
Вместо этих сложностей, просто используйте пулл соединений (вроде библиотека mysql используется в коде). Тогда вам не нужно будет вручную контролировать закрытие соединений.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы