I am getting the database name from front end when user logged in the system and I have to make the connection with that database for further process.I am able to do it if create the connection on same page but I want to use 'exports'
I am trying this. I am new in node.js so if there is some very silly mistake please dont mind and help me to understand. I tried different way of exporting but not able to make it run.
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...');
});
}
now in my model.js
var new_conn = require('./DB_dynamic.js');
var conn = new_conn.dynamicConnection(dbname);
conn.query("my query"); //Error!
Error:
TypeError: Cannot read property 'query' of undefined
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"))
module
.exports.dynamicConnection = function(dbname){
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.