feat: refactor database connection handling to separate database module

This commit is contained in:
2026-06-20 01:52:29 +00:00
parent f8c4a57e78
commit b6b41c06aa
6 changed files with 37 additions and 18 deletions
+16
View File
@@ -0,0 +1,16 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.disconnectDatabase = exports.connectDatabase = void 0;
const mongoose_1 = __importDefault(require("mongoose"));
const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db";
const connectDatabase = async () => {
await mongoose_1.default.connect(mongoUri);
};
exports.connectDatabase = connectDatabase;
const disconnectDatabase = async () => {
await mongoose_1.default.disconnect();
};
exports.disconnectDatabase = disconnectDatabase;
+2 -3
View File
@@ -4,15 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const mongoose_1 = __importDefault(require("mongoose"));
const Activity_1 = require("./models/Activity");
const database_1 = require("./database");
const Leaderboard_1 = require("./models/Leaderboard");
const Team_1 = require("./models/Team");
const User_1 = require("./models/User");
const Workout_1 = require("./models/Workout");
const app = (0, express_1.default)();
const port = Number(process.env.PORT) || 8000;
const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db";
const codespaceName = process.env.CODESPACE_NAME;
const baseUrl = codespaceName
? `https://${codespaceName}-8000.app.github.dev`
@@ -80,7 +79,7 @@ app.get("/api/workouts/", async (_req, res) => {
});
const start = async () => {
try {
await mongoose_1.default.connect(mongoUri);
await (0, database_1.connectDatabase)();
app.listen(port, () => {
console.log(`OctoFit backend listening on ${baseUrl}`);
});
+3 -7
View File
@@ -1,18 +1,14 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const mongoose_1 = __importDefault(require("mongoose"));
const database_1 = require("../database");
const Activity_1 = require("../models/Activity");
const Leaderboard_1 = require("../models/Leaderboard");
const Team_1 = require("../models/Team");
const User_1 = require("../models/User");
const Workout_1 = require("../models/Workout");
const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db";
const seed = async () => {
try {
await mongoose_1.default.connect(mongoUri);
await (0, database_1.connectDatabase)();
console.log("Seed the octofit_db database with test data");
await Promise.all([
Activity_1.ActivityModel.deleteMany({}),
@@ -155,7 +151,7 @@ const seed = async () => {
process.exitCode = 1;
}
finally {
await mongoose_1.default.disconnect();
await (0, database_1.disconnectDatabase)();
}
};
void seed();
+11
View File
@@ -0,0 +1,11 @@
import mongoose from "mongoose";
const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db";
export const connectDatabase = async () => {
await mongoose.connect(mongoUri);
};
export const disconnectDatabase = async () => {
await mongoose.disconnect();
};
+2 -3
View File
@@ -1,6 +1,6 @@
import express from "express";
import mongoose from "mongoose";
import { ActivityModel } from "./models/Activity";
import { connectDatabase } from "./database";
import { LeaderboardModel } from "./models/Leaderboard";
import { TeamModel } from "./models/Team";
import { UserModel } from "./models/User";
@@ -8,7 +8,6 @@ import { WorkoutModel } from "./models/Workout";
const app = express();
const port = Number(process.env.PORT) || 8000;
const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db";
const codespaceName = process.env.CODESPACE_NAME;
const baseUrl = codespaceName
? `https://${codespaceName}-8000.app.github.dev`
@@ -79,7 +78,7 @@ app.get("/api/workouts/", async (_req, res) => {
const start = async () => {
try {
await mongoose.connect(mongoUri);
await connectDatabase();
app.listen(port, () => {
console.log(`OctoFit backend listening on ${baseUrl}`);
});
+3 -5
View File
@@ -1,15 +1,13 @@
import mongoose from "mongoose";
import { connectDatabase, disconnectDatabase } from "../database";
import { ActivityModel } from "../models/Activity";
import { LeaderboardModel } from "../models/Leaderboard";
import { TeamModel } from "../models/Team";
import { UserModel } from "../models/User";
import { WorkoutModel } from "../models/Workout";
const mongoUri = process.env.MONGO_URI || "mongodb://127.0.0.1:27017/octofit_db";
const seed = async () => {
try {
await mongoose.connect(mongoUri);
await connectDatabase();
console.log("Seed the octofit_db database with test data");
@@ -159,7 +157,7 @@ const seed = async () => {
console.error("Seed failed", error);
process.exitCode = 1;
} finally {
await mongoose.disconnect();
await disconnectDatabase();
}
};