kurir-server/connection.ts

58 lines
1.6 KiB
TypeScript

// this is a test
import mongoose, { Schema } from 'mongoose'; // Import Schema
import dotenv from 'dotenv';
dotenv.config();
export async function testDatabaseConnection() {
try {
await mongoose.connect(process.env.MONGODB_URI as string);
console.log('MongoDB Connection Successful!');
// Define a simple schema for the "test" collection
const testSchema = new Schema({
name: String,
value: Number,
});
// Create a model based on the schema
const TestModel = mongoose.model('Test', testSchema);
// Insert a single document with a random value
const singleData = { name: 'Random Item', value: Math.floor(Math.random() * 100) }; // Random number between 0 and 99
const createdItem = await TestModel.create(singleData);
console.log('Single document inserted into "test" collection.', createdItem);
// Optionally, retrieve and log the inserted data
const insertedData = await TestModel.find();
console.log('Inserted data:', insertedData);
// Disconnect from the database
await mongoose.disconnect();
console.log('MongoDB Disconnected.');
} catch (error) {
console.error('MongoDB Connection or Test Failed:', error);
}
}
let cachedConnection: mongoose.Connection | null = null;
export async function connectToDatabase() {
if (cachedConnection) {
return cachedConnection;
}
try {
await mongoose.connect(process.env.MONGODB_URI as string);
console.log('MongoDB Connected');
cachedConnection = mongoose.connection;
return cachedConnection;
} catch (error) {
console.error('MongoDB Connection Error:', error);
throw error;
}
}
// export default