Как правильно передать MySQL соединение с маршрутами с помощью express.js
Я пытаюсь выяснить лучший способ передать соединение mysql (используя node-mysql) между моими маршрутами для express.js. Я динамически добавляю каждый маршрут (используя для каждого файлового цикла в маршрутах), что означает, что я не могу просто передать соединение на маршруты, которые в нем нуждаются. Мне либо нужно пройти его по всем маршрутам, либо вообще нет. Мне не понравилась идея передать его тем, кто в этом не нуждается, поэтому я создал файл dbConnection.js, который маршруты могут импортировать по отдельности, если это необходимо. Проблема в том, что я не думаю, что делаю это правильно. На данный момент мой dbConnection.js содержит:
var mysql = require('mysql');
var db = null;
module.exports = function () {
if(!db) {
db = mysql.createConnection({
socketPath: '/tmp/mysql.sock',
user: '*********',
password: '*********',
database: '**********'
});
}
return db;
};
И я импортирую его в каждый маршрут, используя:
var db = require('../dbConnection.js');
var connection = new db();
Но я хотел бы сделать это так:
var connection = require('../dbConnection.js');
Однако, когда я пытаюсь сделать это, я получаю сообщение об ошибке, в котором говорится, что у соединения нет метода «запрос», когда я пытаюсь сделать запрос.