【发布时间】:2018-01-16 08:50:03
【问题描述】:
我有一个与多个数据库交互的节点应用程序。我创建了一个类,然后我开始创建不同的数据库(它们在很大程度上具有相同的 CRUD 模式。
类:
class CRUDService {
private section: string;
private pouch: any;
constructor(section: string) {
this.section = section;
this.pouch = new PouchDB('.' + section, pouchOptions);
}
public create(data: any): Promise<string> {}
public retrieve(id: string): Promise<string> {}
public update(id: any, data: any): Promise<string> {}
public delete(item: any): Promise<string> {}
public all(): Promise<string> {}
export {CRUDService};
数据库启动:
function Users() {
return new CRUDService('users');
}
export {Users};
然后我像这样在整个应用程序中使用它:
import {Users} from 'databases';
const userService = Users();
userService.something()
我注意到在这个设置中,用户数据库被初始化了多次。我认为我需要解决这个问题是一个单例。我了解我的单身人士是什么,但在这种情况下无法使用单身人士。
任何帮助或指导将不胜感激。
【问题讨论】:
-
您可能希望保留
Users的某种形式的静态实例并检查该实例是否为空。如果是,则将该实例设置为新的CRUDService('user'),如果不是,则返回该实例.
标签: node.js typescript pouchdb