init
This commit is contained in:
53
src/service/index.js
Normal file
53
src/service/index.js
Normal 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();
|
||||
Reference in New Issue
Block a user