node:internal/modules/esm/resolve:873
  throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);
        ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'mysql2' imported from /python/naguruteen/NTCUG/server.mjs
    at packageResolve (node:internal/modules/esm/resolve:873:9)
    at moduleResolve (node:internal/modules/esm/resolve:946:18)
    at defaultResolve (node:internal/modules/esm/resolve:1188:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:708:12)
    at #cachedDefaultResolve (node:internal/modules/esm/loader:657:25)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:640:38)
    at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:264:38)
    at ModuleJob._link (node:internal/modules/esm/module_job:168:49) {
  code: 'ERR_MODULE_NOT_FOUND'
}

Node.js v20.20.2
node:internal/modules/esm/resolve:873
  throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);
        ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'mysql2' imported from /python/naguruteen/NTCUG/server.mjs
    at packageResolve (node:internal/modules/esm/resolve:873:9)
    at moduleResolve (node:internal/modules/esm/resolve:946:18)
    at defaultResolve (node:internal/modules/esm/resolve:1188:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:708:12)
    at #cachedDefaultResolve (node:internal/modules/esm/loader:657:25)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:640:38)
    at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:264:38)
    at ModuleJob._link (node:internal/modules/esm/module_job:168:49) {
  code: 'ERR_MODULE_NOT_FOUND'
}

Node.js v20.20.2
file:///python/naguruteen/NTCUG/server.mjs:19
if (missing.length) throw new Error(`Missing configuration: ${missing.join(", ")}`);
                          ^

Error: Missing configuration: DB_HOST, DB_USER, DB_NAME, SESSION_SECRET, RECOVERY_CODE, ADMIN_USERNAME, ADMIN_PASSWORD
    at file:///python/naguruteen/NTCUG/server.mjs:19:27

Node.js v20.20.2
file:///python/naguruteen/NTCUG/server.mjs:19
if (missing.length) throw new Error(`Missing configuration: ${missing.join(", ")}`);
                          ^

Error: Missing configuration: DB_HOST, DB_USER, DB_NAME, SESSION_SECRET, RECOVERY_CODE, ADMIN_USERNAME, ADMIN_PASSWORD
    at file:///python/naguruteen/NTCUG/server.mjs:19:27

Node.js v20.20.2
file:///python/naguruteen/NTCUG/server.mjs:19
if (missing.length) throw new Error(`Missing configuration: ${missing.join(", ")}`);
                          ^

Error: Missing configuration: DB_HOST, DB_USER, DB_NAME, SESSION_SECRET, RECOVERY_CODE, ADMIN_USERNAME, ADMIN_PASSWORD
    at file:///python/naguruteen/NTCUG/server.mjs:19:27

Node.js v20.20.2
file:///python/naguruteen/NTCUG/server.mjs:19
if (missing.length) throw new Error(`Missing configuration: ${missing.join(", ")}`);
                          ^

Error: Missing configuration: DB_HOST, DB_USER, DB_NAME, SESSION_SECRET, RECOVERY_CODE, ADMIN_USERNAME, ADMIN_PASSWORD
    at file:///python/naguruteen/NTCUG/server.mjs:19:27

Node.js v20.20.2
file:///python/naguruteen/NTCUG/server.mjs:19
if (missing.length) throw new Error(`Missing configuration: ${missing.join(", ")}`);
                          ^

Error: Missing configuration: DB_HOST, DB_USER, DB_NAME, SESSION_SECRET, RECOVERY_CODE, ADMIN_USERNAME, ADMIN_PASSWORD
    at file:///python/naguruteen/NTCUG/server.mjs:19:27

Node.js v20.20.2
file:///python/naguruteen/NTCUG/server.mjs:19
if (missing.length) throw new Error(`Missing configuration: ${missing.join(", ")}`);
                          ^

Error: Missing configuration: DB_HOST, DB_USER, DB_NAME, SESSION_SECRET, RECOVERY_CODE, ADMIN_USERNAME, ADMIN_PASSWORD
    at file:///python/naguruteen/NTCUG/server.mjs:19:27

Node.js v20.20.2
