Требует ли Mysql2 для Node.Js запуска connect () на mysql .CreateConnection перед выполнением очередей - PullRequest
0 голосов
/ 29 мая 2020

Недавно я перенес проект node.js с mysqljs на mysql2 (https://www.npmjs.com/package/mysql2), потому что в нем была дополнительная функция, которая мне нужна. Для моих вызовов базы данных я экспортирую соединение, созданное путем запуска mysql.createConnection({CONFIG}), которое затем импортируется другими файлами, а затем запросы выполняются с помощью команды execute.

До моего перехода в файле, где Я установил соединение с базой данных. У меня было следующее:

const mysql = require("mysql2");
const dbConfig = require("../config/db.config");

const connection = mysql.createConnection({
    host: dbConfig.HOST,
    user: dbConfig.USER,
    password: dbConfig.PASSWORD,
    database: dbConfig.DB,
    port: dbConfig.PORT
});

connection.connect(error => {
    if (error) throw error;
    console.log("DB connect")
});

module.exports = connection;

Мой код работает весело без функции connection.connect. Влияет ли его удаление на производительность, или mysql2 поддерживает открытое соединение независимо, или создание соединения незначительно? Лучше оставить эту строку перед экспортом или удалить?

1 Ответ

1 голос
/ 29 мая 2020

Если вы посмотрите на источник здесь , вы увидите, что вызов createConnection уже выполняет рукопожатие с БД, а метод connect используется только для передачи любых ошибок, которые могли возникнуть, когда вы пытались создать соединение. Метод createConnection не вызывает и не принимает обратный вызов ошибки. Поэтому я бы посоветовал безопаснее продолжать называть его при создании соединения.

...