nodejs mysql закрыть и открыть соединение

0

У меня есть приложение 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);
        });
}
Теги:
database
connection

2 ответа

1
Лучший ответ

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

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

HTH Спасибо!

1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню