1.0.999 • Published 4 years ago

@sumor/microservice v1.0.999

Weekly downloads
16
License
ISC
Repository
-
Last release
4 years ago

轻呈云微服务是基于服务的轻量级框架,同时提供了授权登录,数据库构建等整体解决方案。

安装

要求 Node.JS v7.6.0 以上。

npm install @sumor/microservice --save

创建一个简单服务

const MicroService = require("@sumor/microservice");
const demoEntry = async(ctx)=>{
    const var1 = ctx.query.var1;
    const var2 = ctx.query.var2;
    return var1 + var2;
};
new MicroService({
    name:"Test Service",
    serviceRoot:"/service",
    service:[
        {
            path:"/plus",
            desc:"加法计算",
            parameter:{
                var1:{type:"string",required:true},
                var2:{type:"string",required:true}
            },
            entry:demoEntry
        }
    ],
    port:5000
});

参数介绍

id

服务编号
数据类型:String

name

服务的名称
数据类型:String

serviceRoot

服务的对外显示根目录
数据类型:String
默认值:"/service"

host

服务的对外暴露的主机地址
数据类型:String
示例:"www.sumor.com"

protocol

服务的对外暴露的协议
数据类型:String
默认值:"http"

port

服务的对外暴露的协议
数据类型:String
默认值:"5000"

authorizationServer

授权服务器地址
推荐官方授权服务:"https://auth.sumor.com"

authorizationSecret

授权秘钥

dbConfig

服务对应的数据库配置
示例:

{
    "host": "mysql.demo.com",
    "port": "3306",
    "user": "USER",
    "password": "PASSWORD",
    "database": "demo",
    "charset": "utf8mb4"
}

dbPath

服务的数据建模路径
默认值:__dirname+"/db"

middleware

中间件模块,用于通用额外事务,将会在服务开始时逐个触发,

middleware:[
    async (ctx,next)=>{
        // do some logic
        await next();
    }
]

以下文档更新中

service

服务列表

启用权限

cacheDB

缓存服务器接口,可用于缓存变量,对象,列表
目前支持redis(推荐)和JSON(默认)
配置参数:

{
    "type": "json"
}
{
    "type": "redis",
    "host": "myhost.com",
    "port": "6379",
    "password": "password"
}
  1. 读写变量
await ctx.cacheDB.setVariable("testItem1","001","stringValue");
let testItem1 = await ctx.cacheDB.getVariable("testItem1","001");
console.log(testItem1);
  1. 读写对象及读写对象下单个属性
await ctx.cacheDB.setObject("testItem2","001",{go:1,to:2,market:3});
let testItem2 = await ctx.cacheDB.getObject("testItem2","001");
console.log(testItem2);

await ctx.cacheDB.setObjectAttribute("testItem2","001","go",110);
let testItem2_go = await ctx.cacheDB.getObjectAttribute("testItem2","001","go");
console.log(testItem2_go);
  1. 读写列表
    暂不支持
1.0.999

4 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago