Показать сообщение отдельно
  #1 (permalink)  
Старый 18.12.2018, 17:19
Новичок на форуме
Отправить личное сообщение для mcBiba Посмотреть профиль Найти все сообщения от mcBiba
 
Регистрация: 11.12.2018
Сообщений: 9

Класс работы С базой данных.
Я пишу класс для работы с базой данных. БД MYSQL. Все работает, но только проблема с подключением. С каждым вызовом SELECT или другим действием с базой создается новое подключение и все быстро падает из за большого количества подключений. Пробовал объявить переменную connection глобально, но ничего не выходит.



let express = require("express");
let app = express();
let mysql = require('async-mysql');


app.get('/', function (req, res) {
  new DB('id','users','email','biba@yandex.ru',null).select().then(rows=>console.log(rows));
});

class DB {
  constructor(column,table,indefName,indef,data,query) {
    if(data!=null){
      if(typeof data !="string"){
        for(var i=0;i<data.length;i++){
          data[i] = "'"+data[i]+"'";
        }
      }
      else{
        data = "'"+data+"'";
      }
    }
    this.column = column;
    this.table = table;
    this.indef = "'"+indef+"'";
    this.indefName = indefName;
    this.data = data;
    this.query = query;
  };
  async select() {
    let connection = await mysql.connect({
      host     : '127.0.0.1',
      port     : '3306',
      database : 'heano',
      user     : 'root',
      password : '1234',
      charset  : 'utf8'
    });
    let rows = await connection.query("SELECT "+this.column+" FROM "+this.table+" WHERE "+this.indefName+"="+this.indef);
    return rows;
  };
};


let server = app.listen(2800, () => console.log("Работа пошла"));

Последний раз редактировалось mcBiba, 18.12.2018 в 18:07.
Ответить с цитированием