From 9c83530134e66bbf9077fa807601754a9fc0833b Mon Sep 17 00:00:00 2001 From: agaesh Date: Sun, 12 Oct 2025 07:49:38 +0800 Subject: [PATCH 1/3] refactor(config): update to ES6 module syntax and enhance comments for clarity --- src/Config/config.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Config/config.js b/src/Config/config.js index 7f60c0f..22cad9b 100644 --- a/src/Config/config.js +++ b/src/Config/config.js @@ -1,9 +1,23 @@ -module.exports = { +/** + * Sequelize database configuration for the 'development' environment. + * This file uses ES6 module syntax (`export default`). + */ + +export default { development: { + // Uses environment variable DB_USER, falling back to 'root' username: process.env.DB_USER || 'root', + + // Uses environment variable DB_PASS, falling back to null (no password) password: process.env.DB_PASS || null, + + // Uses environment variable DB_NAME, falling back to 'EnrolNow' database: process.env.DB_NAME || 'EnrolNow', + + // Uses environment variable DB_HOST, falling back to '127.0.0.1' (localhost) host: process.env.DB_HOST || '127.0.0.1', + + // Specifies the database dialect dialect: 'mysql' } }; \ No newline at end of file From fe5a4ca7fa0d1b260df69ea990f15cb873b7b352 Mon Sep 17 00:00:00 2001 From: agaesh Date: Sun, 12 Oct 2025 07:52:25 +0800 Subject: [PATCH 2/3] refactor(db): migrate to ES6 module syntax and update configuration import --- src/Config/db.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Config/db.js b/src/Config/db.js index ec99cbb..703e8bb 100644 --- a/src/Config/db.js +++ b/src/Config/db.js @@ -1,7 +1,17 @@ -// db.js -const { Sequelize } = require('sequelize'); -const config = require('./config').development; +/** + * Sequelize database connection setup using ES6 modules. + * It imports the database configuration from './database.config.js'. + */ +import { Sequelize } from 'sequelize'; +// Import the default export (the configuration object) from the config file. +// Note: The original CJS referred to './config', but we use the actual file name. +import configModule from './database.config.js'; + +// Destructure the specific 'development' environment configuration. +const config = configModule.development; + +// Initialize Sequelize instance const sequelize = new Sequelize( config.database, config.username, @@ -11,5 +21,5 @@ const sequelize = new Sequelize( dialect: config.dialect, } ); - -module.exports = sequelize; \ No newline at end of file +// Export the initialized Sequelize instance +export default sequelize; From ed0cd94ed4a86fce038c5ac10123b543a8f55047 Mon Sep 17 00:00:00 2001 From: agaesh Date: Sun, 12 Oct 2025 08:10:42 +0800 Subject: [PATCH 3/3] refactor(config): migrate to ES module syntax and reorganize imports for clarity --- src/Config/index.js | 58 +++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/src/Config/index.js b/src/Config/index.js index 08ea05e..486c42e 100644 --- a/src/Config/index.js +++ b/src/Config/index.js @@ -1,30 +1,52 @@ -global.__basedir = __dirname; -const express = require('express'); +// --- ES Module Setup for __dirname and __filename --- +// Import necessary modules for path resolution in ES modules +import path from 'path'; +import { fileURLToPath } from 'url'; + +// Derive ES module equivalents for CJS context +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +global.__basedir = __dirname; // Set the global basedir + +// --- Imports --- +import express from 'express'; +import cookieParser from 'cookie-parser'; +import { config } from 'dotenv'; + +// Initialize dotenv configuration immediately +config(); + +// Service Imports (Note: Must include .js extension for local modules) +import UserRegister from "../api/Services/UserService.js"; +import ProgramService from '../api/Services/ProgramCourseServices.js'; + +// Route Imports (Note: Must include .js extension for local modules) +import userRoutes from '../api/Routes/userRoute.js'; +import ProgramRoutes from '../api/Routes/ProgramRoutes.js'; +import departmentRoutes from '../api/Routes/DepartmentRoutes.js'; +import InstructorRoutes from "../api/Routes/InstructorRoutes.js"; + +// --- Application Setup --- const app = express(); const port = 3000; -const cookieparser = require('cookie-parser'); -app.use(express.json()); -app.use(cookieparser()); -require('dotenv').config(); -const UserRegister = require("../api/Services/UserService"); -const ProgramService = require('../api/Services/ProgramCourseServices') -// Require the router -const userRoutes = require('../api/Routes/userRoute'); -const ProgramRoutes = require('../api/Routes/ProgramRoutes'); -const departmentRoutes = require('../api/Routes/DepartmentRoutes') -const InstructorRoutes = require("../api/Routes/InstructorRoutes") +// Middleware +app.use(express.json()); +app.use(cookieParser()); +app.use(express.urlencoded({ extended: true })); // Example route app.get('/', (req, res) => { res.send('Hello from Express API!'); }); -app.use(express.urlencoded({ extended: true })); -// Use the router at a mount path + +// Use the routers at their mount paths app.use('/users', userRoutes); -app.use('/program', ProgramRoutes) -app.use('/department', departmentRoutes) -app.use("/instructor", InstructorRoutes) +app.use('/program', ProgramRoutes); +app.use('/department', departmentRoutes); +app.use("/instructor", InstructorRoutes); + +// --- Start Server --- app.listen(port, () => { console.log(`Express API listening at http://localhost:${port}`); }); \ No newline at end of file