Spaces:
Paused
Paused
// startup like fastapi similar | |
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 }; |