1.6.0 • Published 11 months ago

egg-qeelyn-framework v1.6.0

Weekly downloads
3
License
MIT
Repository
github
Last release
11 months ago

eggjs qeelyn framework

基于eggjs整理了一套服务端框架

具体引用

npm i egg-qeelyn-framework --S

再package.json中增加

{
    ...
    "egg": {
        "framework": "egg-qeelyn-framework"
    },
    ...
}

VS CODE

使用 vs code 开发 建议安装插件eggjs

已启动的功能

  1. 默认配置了json日志输出
  2. redis (目前redis,外部项目需要自己配置)
  3. 加载框架的controller (给vue框架公共区域调用的api、spm创建的api、注销用户api、前端日志记录)
  4. 中间件的引入 (api用户验证、spm跨系统服务)
  5. service (统一的http请求格式封装、邮件发送、登陆验证中心接口、spm的创建使用)
  6. 工具类 (可以统一的json格式输出)

controllser

介绍

框架controllser是前端模块配合调用的api接口层,主要用处理公共头部的接口、spm的创建接口、用户注销的logout接口,当然也可以自行实现

使用方式

路由配置即可使用。 (copy过去就可以了)

    // 前端公共部分ui的api
    router.post('/qeelyn-framework/usercenter-api', controller.qeelynFrameworkApi.ucenterApi);
    // 注销api
    router.get('/qeelyn-framework/logout', controller.qeelynFrameworkApi.logout);
    // 前端日志记录使用
    router.get('/qeelyn-framework/log', controller.qeelynFrameworkApi.log);
    // spm生产api   spm的使用需要配置redis
    router.post('/qeelyn-framework/spm', controller.qeelynFrameworkApi.spm);

extend

介绍

规范 输出和某种特定请求的获取

使用方式 helper.js

具体内容说明在对应文件中可以查看

    //规范输出
    ctx.helper.jsonResult(data, error)
    ctx.helper.errorOut(errors)
    //特殊格式获取
    ctx.helper.getQueryData(query, method)

使用方式 context.js

    //日志的json输出  (目前废弃)
    ctx.logger
    //真实ip获取 会获取代理中的x-forwarded-for
    ctx.xip
    //处理生成reqId
    ctx.reqId

middleware

介绍

middleware是和路由配合,在子系统的路由中调用。主要处理api的jwt验证、spm的用户服务、记录request log、防重、防串改签名验证

jwt验证需要一个 rsa_pub.pem 的解密文件 放在子系统的app目录下

使用方式

在路由中使用 具体内容说明在对应文件中可以查看

    // 用于api处理
    const qeelynApiAuth = app.middleware.qeelynApiAuth(),
        qeelynValidSign = app.middleware.qeelynValidSign(),
        qeelynLog = app.middleware.qeelynLog();
    router.post('/api/xxx',qeelynValidSign, qeelynLog, qeelynApiAuth, controller.api.api);

    // 用于页面路由处理
    const qeelynSpmAuth = app.middleware.qeelynSpmAuth(),
        qeelynPageAuth = app.middleware.qeelynPageAuth();
    router.get('/*',qeelynSpmAuth, qeelynPageAuth, controller.home.index);

service

介绍

框架service提供一些可以给系统调用的service 主要有 统一的qeelyn服务端模拟http请求、邮件发送、用户登陆和信息查询服务、spm服务

使用方式

具体内容说明在对应文件中可以查看

    //举了个例子
    const body = await this.service.qeelynSpmClient.createSpm();

config

配置文件 config.default.js 具体已再文件内备注好

    //针对自己的系统定义一个appCode(必须配置)
    config.appCode = '';

    //发送邮件需要配置
    config.mailer={};

单元测试

可参考eggjs的单元测试 本项目的单元测试目录在test下,运行如下代码可以进行单元测试:

    npm run test-local  xxxx(代表test对应目录文件)
    npm run test-local test/service/qeelynSpmClient.test.js

运行时需要再test\fixtures\example\config增加config.unittest.jsrsa_pub.pem

config.unittest.js

'use strict';
const path = require('path');

module.exports = appInfo => {
    const config = {};

    config.keys = appInfo.name + '_v1.0.0';

    config.appCode = 'unittest';

    config.publicKeyPath = path.join(appInfo.baseDir, 'config/rsa_pub.pem');

    config.api = {
        deoGateway: '',
        ucenterAuth: '',
    };

    config.pageConfig = {
        loginUrl: '',
        ucenterHost: ''
    };

    config.cache = {
        redis: {
            port: 6379,
            host: '127.0.0.1',
            db: 0,
        },
    };

    config.orgId = 0;
    config.token = '';
    config.refreshToken = '';

    config.authData = {
        account: '',
        password: '',
        headers: {
            'User-Agent': '',
            Referer: ''
        }
    };

    return config;
};

rsa_pub.pem

解析jwt的文件

1.6.0

11 months ago

1.5.10

3 years ago

1.5.11

3 years ago

1.5.9

3 years ago

1.5.8

3 years ago

1.5.7

3 years ago

1.5.6

3 years ago

1.5.5

3 years ago

1.5.4

3 years ago

1.5.3

3 years ago

1.5.2

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.17

4 years ago

1.4.16

4 years ago

1.4.15

4 years ago

1.4.14

4 years ago

1.4.13

5 years ago

1.4.12

5 years ago

1.4.11

5 years ago

1.4.10

5 years ago

1.4.9

5 years ago

1.4.8

5 years ago

1.4.7

5 years ago

1.4.6

5 years ago

1.4.5

5 years ago

1.4.4

6 years ago

1.4.3

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

1.3.47

6 years ago

1.3.46

6 years ago

1.3.45

6 years ago

1.3.44

6 years ago

1.3.43

6 years ago

1.3.42

6 years ago

1.3.41

6 years ago

1.3.40

6 years ago

1.3.39

6 years ago

1.3.38

6 years ago

1.3.37

6 years ago

1.3.36

6 years ago

1.3.35

6 years ago

1.3.34

6 years ago

1.3.33

6 years ago

1.3.32

6 years ago

1.3.31

6 years ago

1.3.30

6 years ago

1.3.29

6 years ago

1.3.28

6 years ago

1.3.27

6 years ago

1.3.26

6 years ago

1.3.25

6 years ago

1.3.24

6 years ago

1.3.23

6 years ago

1.3.22

6 years ago

1.3.21

6 years ago

1.3.20

6 years ago

1.3.19

6 years ago

1.3.18

6 years ago

1.3.17

6 years ago

1.3.16

6 years ago

1.3.15

6 years ago

1.3.14

6 years ago

1.3.13

6 years ago

1.3.12

6 years ago

1.3.11

6 years ago

1.3.10

6 years ago

1.3.9

6 years ago

1.3.8

6 years ago

1.3.7

6 years ago

1.3.6

6 years ago

1.3.5

6 years ago

1.3.4

6 years ago

1.3.3

6 years ago

1.3.2

6 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.2.2

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago