nhb-express
Version:
Express TypeScript Server Scaffold
39 lines (32 loc) • 1.12 kB
text/typescript
import configs from '@/configs';
import chalk from 'chalk';
import mongoose from 'mongoose';
/** * Connect to MongoDB using Mongoose. */
export const connectDB = async (): Promise<void> => {
try {
// Throw error if there is no connection string
if (!configs.mongoUri) {
throw new Error('MongoDB URI is Not Defined!');
}
await mongoose.connect(configs.mongoUri);
console.info(chalk.cyanBright('🔗 MongoDB is Connected!'));
// Listen for established connection
mongoose.connection.on('connected', () => {
console.info(chalk.cyanBright('🔗 MongoDB is Connected!'));
});
// Listen for connection errors
mongoose.connection.on('error', (err) => {
console.error(chalk.red(`⛔ MongoDB Connection Error: ${err.message}`));
});
// Optional: Listen for disconnection
mongoose.connection.on('disconnected', () => {
console.error(chalk.red('⛔ MongoDB is Disconnected!'));
});
} catch (error) {
if (error instanceof Error) {
console.error(chalk.red(`🚫 MongoDB Error: ${error.message}`));
} else {
console.error(chalk.red('🛑 Unknown Error Occurred!'));
}
}
};