问题描述
我有一个MongoQueryResolver
类,其中包含一个字典:
private queries: {[key: string]: (params) => any} = {};
此词典通过键保存函数,其中每个函数都是MongoDB的查询函数。
我创建了一个装饰器MongoQuery
,它代表一个mongo查询函数:
export function MongoQuery(queryName: string) {
return function decorator(target,key,func) {
target.register(queryName,func);
}
}
此修饰器调用MongoQueryResolver#register
以便在字典中注册查询,因此我可以按查询名称使用它。
我创建的MongoQuery函数示例:
@MongoQuery(QueryType.GET_ALL_ENABLED)
public async getAllEnabled(params) {
const workersDb = MongoService.getBranch(Branches.WORKERS).db("workers");
const configCollection = await workersDb.collection('config');
const criteria: any = {isEnabled: true};
if (params.proxy) {
criteria.proxy = params.proxy;
}
return await configCollection.find(criteria).toArray();
}
以及我在户外如何使用它:
MyRoutes.get('/get-enabled',async (req,res) => {
const data = await MongoQueryResolver.resolve(QueryType.GET_ALL_ENABLED,{proxy: req.query.proxy});
res.json(data);
});
问题
当我的应用程序启动时,我在字典上打印字典:
set GET_ALL_ENABLED {
value: [Function: getAllEnabled],writable: true,enumerable: false,configurable: true
}
{
GET_ALL_ENABLED: {
value: [Function: getAllEnabled],configurable: true
}
}
但是当我开始使用字典时,它是空的..
我用export default new MongoQueryResolver()
将班级标记为单身人士
为什么会发生?似乎好像是一个新实例?
import MongoQueryResolver from '../../services/mongo/mongo-query-resolver'
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)