Ниже приведен мой код (в файле db.js)
function connection() {
try {
const mysql = require('mysql2');
const pool = mysql.createPool({
host: "mydb.abcd1234.ap-southeast-1.rds.amazonaws.com",
database: "mydatabase",
user: "user",
password: "password",
connectionLimit: 11,
waitForConnections: true,
queueLimit: 0,
namedPlaceholders: true
});
const promisePool = pool.promise();
return promisePool;
} catch (error) {
return console.log(`Could not connect - ${error}`);
}
}
const pool = connection();
module.exports = {
connection: async () => pool.getConnection(),
execute: (...params) => pool.execute(...params)
};
И чтобы использовать его, я просто добавляю var db = require('./../db.js');
вверху файлов, которые его требуют. Кроме того, ниже показано, как я буду выполнять любые SQL-операторы
const myResult = await db.execute("Select COUNT(*) AS dataCount from teachers WHERE username = ?", [username]);
Но теперь мне нужно разделить базу данных по странам. Таким образом, моя база данных будет иметь имя mydatabase_
+ код страны, например mydatabase_my
, mydatabase_jp
, mydatabase_uk
и т. Д. И т. Д. Так как мне передать код страны в function connection()
?
Я попробовал что-то вроде
function connection(country) {
try {
const mysql = require('mysql2');
const pool = mysql.createPool({
host: "mydb.abcd1234.ap-southeast-1.rds.amazonaws.com",
database: "mydatabase_" + country,
user: "user",
password: "password",
connectionLimit: 11,
waitForConnections: true,
queueLimit: 0,
namedPlaceholders: true
});
const promisePool = pool.promise();
return promisePool;
} catch (error) {
return console.log(`Could not connect - ${error}`);
}
}
const pool = connection(country);
module.exports = {
connection: async (country) => pool.getConnection(country),
execute: (...params) => pool.execute(...params)
};
, и на странице вызова я сделал
var db = require('./../db.js');
db.connection("my")
, но для вышеизложенного я получу ReferenceError: country is not defined
, что относится кстрана на линии const pool = connection(country);