mirror of
https://github.com/xuthus83/pigallery2.git
synced 2024-11-03 21:04:03 +08:00
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import * as mongoose from 'mongoose';
|
|
import {Schema} from "mongoose";
|
|
export class DatabaseManager{
|
|
private static _instance:DatabaseManager = null;
|
|
private connectionError = false;
|
|
|
|
constructor(onError?:(err)=>void,onConnected?:() =>void){
|
|
mongoose.connection.on('error', function (err) {
|
|
this.connectionError = true;
|
|
if(onError){
|
|
onError(err);
|
|
}
|
|
});
|
|
mongoose.connection.on('connected', function () {
|
|
if(onConnected){
|
|
onConnected();
|
|
}
|
|
});
|
|
try {
|
|
mongoose.connect('mongodb://localhost/EQZT6L');
|
|
}catch(ex){
|
|
this.connectionError = true;
|
|
if(onError){
|
|
onError(ex);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static getInstance(onError?:(err)=>void,onConnected?:() =>void){
|
|
if(DatabaseManager._instance === null){
|
|
DatabaseManager._instance = new DatabaseManager(onError,onConnected);
|
|
}else{
|
|
if(DatabaseManager._instance.connectionError === false && onConnected){
|
|
onConnected();
|
|
}
|
|
}
|
|
return DatabaseManager._instance;
|
|
}
|
|
|
|
public getModel(name:string,schema:any){
|
|
return mongoose.model(name,new Schema(schema));
|
|
}
|
|
|
|
public disconnect(){
|
|
mongoose.disconnect();
|
|
}
|
|
|
|
public isConnectionError(){
|
|
return this.connectionError;
|
|
}
|
|
} |