1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/backend/model/mongoose/DatabaseManager.ts
2016-04-24 20:56:54 +02:00

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;
}
}