1.0.999 • Published 4 years ago
@sumor/microservice v1.0.999
轻呈云微服务是基于服务的轻量级框架,同时提供了授权登录,数据库构建等整体解决方案。
安装
要求 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"
}
- 读写变量
await ctx.cacheDB.setVariable("testItem1","001","stringValue");
let testItem1 = await ctx.cacheDB.getVariable("testItem1","001");
console.log(testItem1);
- 读写对象及读写对象下单个属性
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);
- 读写列表
暂不支持