[YF-FPM-SERVER] BETA版更新细节

0. 什么是yf-fpm-server

yf-fpm-server是一款轻量级的api服务端,可通过插件集成数据库(mysql,mongodb)的数据操作,灵活扩展自定义业务逻辑


BETA版更新概要


1. 更新依赖

为了让核心代码更轻便,去除了很多臃肿的依赖;除了Babel相关的以外,最终依赖如下一些模块:

{
  "koa": "^2.0.0",
  "koa-bodyparser": "^3.2.0",
  "koa-router": "^7.1.0",
  "koa2-cors": "^2.0.3",
  "lodash": "^4.16.1",
  "md5": "^2.1.0",
  "moment": "^2.13.0"
}

2. 支持插件集成

在一些主要的操作节点上添加了钩子,可进行插件开发集成。

钩子列表如下:
默认实现的插件包括:

(点击可进入github)

3. 添加config.json静态配置文件

修改之前版本动态配置文件的设计,添加静态配置文件。 在服务初始化之前会进行加载,在之后的中间件均可通过 getConfig() 函数进行访问。 默认配置文件包含的字段:

{
  server:{
    port: 9999
  },
  defaultVersion: '0.0.1',
  dev: 'DEV',
  log4js: { // log4js config },
  apps: { // fpm 授权应用列表
    '123123': {
      appkey: '123123',
      approot: '*',
      secretkey: '123123',
    }
  },
  mysql: { // mysql配置信息
    host: 'localhost',
    database: 'fpm',
    username: 'xxx',
    password: 'xxx',
    showSql: true
  }

配置文件可根据插件和业务的实际情况更改。

4. 文件改动

create mode 100644 src/middleware/auth.js
delete mode 100644 src/middleware/clientFilter.js
delete mode 100644 src/middleware/defaultConfig.js

5. 示例代码

import { Fpm, Hook,Biz }  from 'yf-fpm-server'
let app = new Fpm()
let biz = new Biz('0.0.1')
biz.addSubModules('test',{
  foo:async function(args){
    return new Promise( (resolve, reject) => {
	  reject({errno: -3001});
	});
  }
})
app.addBizModules(biz);
app.run();