nodejs mysql закрыть и открыть соединение - PullRequest
0 голосов
/ 20 мая 2018

У меня есть приложение nodejs, которое подключается к mysql. Когда я оставляю соединение открытым, сервер закрывает его, и когда я использую con.destroy или con.end, я не могу повторно подключиться к mysql.

Что я должен сделать, и этоЛучше продолжать закрывать и определять новое соединение для каждого запроса, зная, что будет много.

module.exports = class DataAccessLayer {
constructor() {
    this.con = mysql.createConnection({
        host: ("host.com"),
        user: ("asdfg"),
        password: ("zxcvb"),
        database: ("DB_example")
    });

    this.con.connect(function (err) {
        if (err) throw err;
        console.log("Connected to DB");
    });
}

getUserBySenderId(senderId) {
    this.con.query("SELECT sender_id,first_name,last_name,creation_date " +
        "FROM USER " +
        "WHERE sender_id = '" + senderId + "'",
        function (err, result, fields) {
            if (err) throw err;
            console.log(result);
        });
}

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Для вашей проблемы, вы можете посетить этот документ https://www.npmjs.com/package/mysql#pooling-connections.

Вместо того, чтобы каждый раз делать запрос и снова и снова делать попадание в базу данных для MYSQL.Также нужно помнить, когда закрывать соединение, а когда открывать - довольно громоздкая задача.Вы можете использовать Sequelize http://docs.sequelizejs.com/ (ORM).Это поможет вам преодолеть все эти трудности и позволит вам сосредоточиться на своей бизнес-логике, а не на технических ошибках.

HTH Спасибо!

0 голосов
/ 20 мая 2018

Создание и разрыв соединения с базой данных при каждом запросе приведет к снижению времени ответа на каждый запрос, что повлияет на общую производительность.Следует рассмотреть возможность использования пула соединений, как описано в https://www.npmjs.com/package/mysql#pooling-connections. Пул соединений будет изолировать приложение от сценариев, таких как сервер, завершающий простое соединение из-за отсутствия активности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...