соединение с динамической базой данных node.js с использованием экспорта - PullRequest
0 голосов
/ 17 мая 2019

Я получаю имя базы данных из внешнего интерфейса, когда пользователь вошел в систему, и мне нужно установить соединение с этой базой данных для дальнейшего процесса. Я могу это сделать, если создаю соединение на той же странице, но я хочу использовать 'exports' Я пытаюсь это Я новичок в node.js, поэтому, если есть какая-то очень глупая ошибка, пожалуйста, не возражайте и помогите мне понять. Я пробовал другой способ экспорта, но не смог его запустить.

my DB_dynamic.js:

var mysql = require('mysql');
exports.dynamicConnection= function(dbname){
var connection = mysql.createConnection({
  host: process.env.DBHost || 'localhost',
  port: process.env.DBPort || 3306,
  user: process.env.DBUser || 'root',
  password: process.env.DBPassword || '',
  database: process.env.DBName || dbname
});
connection.connect((err) =>{
  if(err) throw err;
  console.log('Mysql Connected...');
});
}

сейчас в моем model.js

var new_conn = require('./DB_dynamic.js');
var conn = new_conn.dynamicConnection(dbname);
  conn.query("my query"); //Error!

Ошибка:

TypeError: Cannot read property 'query' of undefined

Ответы [ 2 ]

1 голос
/ 17 мая 2019

DB_dynamic.js

const mysql = require('mysql');


module.exports = dbConnection = (dbname) => {
    return connection = mysql.createConnection({
        host: process.env.DBHost || 'localhost',
        port: process.env.DBPort || 3306,
        user: process.env.DBUser || 'root',
        password: process.env.DBPassword || '',
        database: process.env.DBName || dbname
    });
};

model.js

let dbConnection = require('./DB_dynamic.js');

console.log(dbConnection("your_db_name").query("your_query"))

0 голосов
/ 17 мая 2019

module .exports.dynamicConnection = function (dbname) {

...