adds extra config/config.ts to set config/database.ts
This commit is contained in:
32
src/config/config.ts
Normal file
32
src/config/config.ts
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
|
||||||
|
export interface IConfig {
|
||||||
|
mongodbUri: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Config implements IConfig {
|
||||||
|
private static instance: Config;
|
||||||
|
|
||||||
|
public readonly mongodbUri: string;
|
||||||
|
|
||||||
|
private constructor() {
|
||||||
|
this.mongodbUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/dailytrends';
|
||||||
|
this.validateConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static getInstance(): Config {
|
||||||
|
if (!Config.instance) {
|
||||||
|
Config.instance = new Config();
|
||||||
|
}
|
||||||
|
return Config.instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
private validateConfig(): void {
|
||||||
|
if (!this.mongodbUri) {
|
||||||
|
throw new Error('MONGODB_URI is required');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const config = Config.getInstance();
|
||||||
|
export default config;
|
@ -1,5 +1,5 @@
|
|||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
|
import config from './config'
|
||||||
|
|
||||||
export class DatabaseConnection {
|
export class DatabaseConnection {
|
||||||
private static instance: DatabaseConnection;
|
private static instance: DatabaseConnection;
|
||||||
@ -37,7 +37,7 @@ export class DatabaseConnection {
|
|||||||
});
|
});
|
||||||
|
|
||||||
mongoose.connection.on('disconnected', () => {
|
mongoose.connection.on('disconnected', () => {
|
||||||
console.log('MongoDB connection disconnected', { error });
|
console.log('MongoDB connection disconnected');
|
||||||
this.isConnected = false;
|
this.isConnected = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user