Я пытаюсь найти лучший способ передать соединение 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');
Однако, когда я пытаюсь сделать это таким образом, я получаю сообщение об ошибке, говорящее, что соединение не имеет метода «запрос», когда я пытаюсь сделать запрос.