|
|
|
|
|
import { Database } from '../database/database.js'; |
|
import { |
|
UsernameDB, |
|
PasswordDB |
|
} from '../config.js'; |
|
import mongoose from 'mongoose'; |
|
import { ApiKey } from "../models.js"; |
|
|
|
const port = 7860 |
|
|
|
const startup = async () => { |
|
try { |
|
await mongoose.connect(`mongodb+srv://${UsernameDB}:${PasswordDB}@cluster0.1asx6h1.mongodb.net/AkenoXJs?retryWrites=true&w=majority`); |
|
console.log("Mongoose connected successfully."); |
|
|
|
const db = mongoose.connection.db; |
|
const collections = await db.listCollections().toArray(); |
|
const collectionNames = collections.map(col => col.name); |
|
|
|
if (collectionNames.includes("ApiKey")) { |
|
const collection = db.collection("ApiKey"); |
|
try { |
|
await collection.dropIndex("expiresAt_1"); |
|
console.log("Dropped TTL index on expiresAt."); |
|
} catch (err) { |
|
if (err.codeName === "IndexNotFound") { |
|
console.log("No TTL index found, skipping dropIndex."); |
|
} else { |
|
console.error("Error dropping index:", err.message); |
|
} |
|
} |
|
} else { |
|
console.log("Collection 'ApiKey' does not exist yet. Skipping dropIndex."); |
|
} |
|
|
|
const dbClient = new Database("AkenoXJs"); |
|
console.log("Starting application..."); |
|
await dbClient.connect(); |
|
console.log("MongoDB connected successfully."); |
|
} catch (error) { |
|
console.error("Error during startup:", error.message); |
|
process.exit(1); |
|
} |
|
}; |
|
|
|
|
|
const startServer = async (app) => { |
|
await startup(); |
|
app.listen(port, "0.0.0.0", () => { |
|
console.log(`Server running on http://localhost:${port}`); |
|
}); |
|
}; |
|
|
|
export { startServer }; |