30 lines
913 B
JavaScript
30 lines
913 B
JavaScript
// backend/config/mysqlPool.js
|
|
import mysql from 'mysql2/promise';
|
|
import dotenv from 'dotenv';
|
|
import { fileURLToPath } from 'url';
|
|
import path from 'path';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
// load .env.<env>
|
|
dotenv.config({ path: path.resolve(__dirname, '..', `.env.${process.env.NODE_ENV || 'development'}`) });
|
|
|
|
/** decide: socket vs TCP */
|
|
let poolConfig;
|
|
if (process.env.DB_SOCKET) {
|
|
poolConfig = { socketPath: process.env.DB_SOCKET };
|
|
} else {
|
|
poolConfig = {
|
|
host : process.env.DB_HOST || '127.0.0.1',
|
|
port : process.env.DB_PORT || 3306,
|
|
user : process.env.DB_USER || 'root',
|
|
password: process.env.DB_PASSWORD || '',
|
|
};
|
|
}
|
|
poolConfig.database = process.env.DB_NAME || 'user_profile_db';
|
|
poolConfig.waitForConnections = true;
|
|
poolConfig.connectionLimit = 10;
|
|
|
|
export default mysql.createPool(poolConfig);
|