This commit is contained in:
chaosBreaking
2019-08-31 14:59:13 +08:00
commit dc5423d356
65 changed files with 3813 additions and 0 deletions

53
src/service/index.js Normal file
View File

@@ -0,0 +1,53 @@
const event = require('events');
const serviceMap = require('./serviceMap');
const { auth } = require('./middleware');
// const Provider = require('../common/Provider')
class ServiceManager extends event {
constructor(props = {}) {
mylog.info('初始化服务控制器...');
super(props);
this._map = serviceMap;
this.middleWares = [
auth
];
}
static getInstance() {
if(!ServiceManager.instance) {
ServiceManager.instance = new ServiceManager();
}
return ServiceManager.instance;
}
get ServiceMap() {
return this._map;
}
/**
*
* @desc 注册一个服务
* @param {*} [service={}]
* @param {String} path // 路由地址
* @param {String} type // HTTP请求类型['GET','POST','PUT'...]
* @param {Function} handler //处理函数
* @memberof ServiceManager
*/
regist(service = {}) {
const { version, ...main } = service;
this._map[version].push(main);
}
mountService(route, version) {
mylog.info('开始挂载中间价...');
this.middleWares.map(fn => {
route.use(fn);
});
mylog.info('开始挂载服务...');
if (this.ServiceMap[version] && this.ServiceMap[version].length !== 0) {
this.ServiceMap[version].map(service => {
route[service.method.toLowerCase()](service.url, service.controller);
});
}
return route;
}
}
module.exports = ServiceManager.getInstance();