mm_os 2.7.8 → 2.7.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -26
- package/package.json +3 -3
- package/demo/app/test/app.js +0 -145
- package/demo/app/test/app.json +0 -12
- package/demo/app/test/event_api/client/event.json +0 -20
- package/demo/app/test/event_api/client/main.js +0 -21
- package/demo/app/test/mqtt/df/index.js +0 -509
- package/demo/app/test/mqtt/df/mqtt.json +0 -24
- package/demo/app/test/mqtt/test/index.js +0 -604
- package/demo/app/test/mqtt/test/mqtt.json +0 -24
- package/demo/app/test/mqtt/zs/index.js +0 -620
- package/demo/app/test/mqtt/zs/mqtt.json +0 -36
- package/demo/app/test/plugin/main/api_demo_client/test/api.json +0 -41
- package/demo/app/test/plugin/main/api_demo_client/test/index.js +0 -55
- package/demo/app/test/plugin/main/api_demo_client/test/param.json +0 -130
- package/demo/app/test/plugin/main/api_demo_client/test/sql.json +0 -70
- package/demo/app/test/plugin/main/index.js +0 -159
- package/demo/app/test/plugin/main/plugin.json +0 -103
- package/demo/app/test/plugin/main/task/demo_task/index.js +0 -37
- package/demo/app/test/plugin/main/task/demo_task/task.json +0 -26
- package/demo/com/server/com.json +0 -4
- package/demo/com/server/index.js +0 -499
- package/demo/config/development.json +0 -115
- package/demo/config/local.json +0 -116
- package/demo/config/test.json +0 -99
- package/demo/index.js +0 -27
package/README.md
CHANGED
|
@@ -1,37 +1,59 @@
|
|
|
1
1
|
# 服务端框架
|
|
2
2
|
|
|
3
3
|
#### 介绍
|
|
4
|
-
|
|
4
|
+
这是一个服务端框架,用于快速构建网站、游戏、小程序服务端。
|
|
5
5
|
|
|
6
6
|
#### 软件架构
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
由koa网站框架 + art-template模板引擎 + mm(热拔插)插件机制 + mysql数据库 + redis缓存 + jwt鉴权 + 等等组成。
|
|
9
8
|
|
|
10
9
|
#### 安装教程
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
新建一个目录,然后在当前打开命令提示符,输入以下命令进行初始化
|
|
11
|
+
``` command
|
|
12
|
+
npm init
|
|
13
|
+
```
|
|
14
|
+
然后根据提示进行配置,配置完成后,输入以下指令进行安装
|
|
15
|
+
``` command
|
|
16
|
+
npm i mm_os
|
|
17
|
+
```
|
|
15
18
|
|
|
16
19
|
#### 使用说明
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
安装完成后,目录下新建一个index.js文件,在命令行输入以下代码,然后运行即可
|
|
21
|
+
```javascript
|
|
22
|
+
require("mm_expand");
|
|
23
|
+
const OS = require("mm_os");
|
|
24
|
+
$.runPath = __dirname + $.slash;
|
|
25
|
+
var os = new OS(config);
|
|
26
|
+
os.run();
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
#### 特色说明
|
|
30
|
+
1. 独特的json配置文件 + js脚本的开发模式,让开发更加灵活,更加高效。
|
|
31
|
+
2. 内置http请求模块、mysql、redis、mongodb模块,让请求数据和操作数据库更加简单。
|
|
32
|
+
3. 适合分布式部署,支持多进程,支持负载均衡,支持集群部署。
|
|
33
|
+
4. 适合微服务架构,支持服务注册与发现,支持服务调用,支持服务熔断,支持服务降级。
|
|
34
|
+
5. mm(热拔插)插件机制,可以快速扩展功能,并且支持热拔插,无需重启服务。
|
|
35
|
+
6. jwt鉴权,支持单点登录,支持多用户登录,支持多角色权限控制。
|
|
36
|
+
7. mysql数据库,支持多数据库连接,支持事务,支持分库分表。
|
|
37
|
+
8. redis缓存,支持多缓存连接,支持缓存穿透,支持缓存雪崩。
|
|
38
|
+
9. art-template模板引擎,支持多模板引擎,支持模板继承,支持模板缓存。
|
|
39
|
+
10. 支持多语言,采用I18n多语言模式。
|
|
40
|
+
11. 支持多协议,支持http,支持https,支持websocket,支持grpc。
|
|
41
|
+
12. 支持多平台,支持windows,支持linux,支持mac。
|
|
21
42
|
|
|
22
43
|
#### 参与贡献
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
44
|
+
1. qiuwenwu(mm_os框架创始人)
|
|
45
|
+
2. 自由人网络(mm_os框架核心开发团队)
|
|
46
|
+
|
|
47
|
+
#### 特点
|
|
48
|
+
1. 简单易用,快速上手
|
|
49
|
+
2. 高效开发,快速迭代
|
|
50
|
+
3. 灵活扩展,快速定制
|
|
51
|
+
4. 稳定可靠,长期维护
|
|
52
|
+
5. 开源免费,社区支持
|
|
53
|
+
6. 适合个人开发者,适合企业级应用
|
|
54
|
+
8. 适合初创企业,中小型企业,仅需几人即可快速搭建大型网站、游戏服务端或智能物联网(AIOT)平台
|
|
55
|
+
|
|
56
|
+
#### 附言
|
|
57
|
+
1. mm_os 官方网站 [www.fman.top](https://www.fman.top)
|
|
58
|
+
2. 你可以访问 [https://www.fman.top/source/market](https://www.fman.top/source/market) 来了解 mm_os 上的优秀开源项目
|
|
59
|
+
3. [mm_os_server](https://www.fman.top/download) 是极为有价值开源项目,是综合评定出的优秀开源项目,具有丰富的插件、模板、挂件可用
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mm_os",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.9",
|
|
4
4
|
"description": "这是超级美眉服务端框架,用于快速构建应用程序。",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"author": "邱文武",
|
|
31
31
|
"license": "ISC",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"koa": "^2.15.
|
|
33
|
+
"koa": "^2.15.4",
|
|
34
34
|
"koa-body": "^6.0.1",
|
|
35
35
|
"koa-compress": "^5.1.1",
|
|
36
36
|
"koa-send": "^5.0.1",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"mm_html": "^1.1.6",
|
|
42
42
|
"mm_koa_proxy": "^1.0.0",
|
|
43
43
|
"mm_logs": "^1.1.6",
|
|
44
|
-
"mm_machine": "^1.8.
|
|
44
|
+
"mm_machine": "^1.8.2",
|
|
45
45
|
"mm_mongodb": "^1.4.2",
|
|
46
46
|
"mm_mqtt": "^1.0.6",
|
|
47
47
|
"mm_mysql": "^1.8.9",
|
package/demo/app/test/app.js
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileOverview dev
|
|
3
|
-
* @author <a href="作者主页地址">插件作者</a>
|
|
4
|
-
* @version 1.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @description 插件对象
|
|
9
|
-
*/
|
|
10
|
-
module.exports = {
|
|
11
|
-
/**
|
|
12
|
-
* @description 初始化
|
|
13
|
-
* @param {Object} option 配置参数
|
|
14
|
-
* @return {String} 成功返回null, 否则返回错误提示
|
|
15
|
-
*/
|
|
16
|
-
init(option) {
|
|
17
|
-
var msg = null;
|
|
18
|
-
console.log("示例应用-初始化");
|
|
19
|
-
return msg;
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @description 安装
|
|
24
|
-
* @param {Object} option 配置参数
|
|
25
|
-
* @return {String} 成功返回null,否则返回错误提示
|
|
26
|
-
*/
|
|
27
|
-
install(option) {
|
|
28
|
-
var msg = null;
|
|
29
|
-
return msg;
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* @description 卸载
|
|
34
|
-
* @param {Object} option 配置参数
|
|
35
|
-
* @return {String} 成功返回null,否则返回错误提示
|
|
36
|
-
*/
|
|
37
|
-
uninstall(option) {
|
|
38
|
-
var msg = null;
|
|
39
|
-
return msg;
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* @description 更新
|
|
44
|
-
* @param {Object} option 配置参数
|
|
45
|
-
* @return {String} 成功返回null, 否则返回错误提示
|
|
46
|
-
*/
|
|
47
|
-
update(option) {
|
|
48
|
-
var msg = null;
|
|
49
|
-
return msg;
|
|
50
|
-
},
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* @description 启动
|
|
54
|
-
* @param {Object} opiton 配置参数
|
|
55
|
-
* @return {String} 成功返回null,否则返回错误提示
|
|
56
|
-
*/
|
|
57
|
-
start(option) {
|
|
58
|
-
var msg = null;
|
|
59
|
-
return msg;
|
|
60
|
-
},
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* @description 暂停
|
|
64
|
-
* @param {Object} opiton 配置参数
|
|
65
|
-
* @return {String} 成功返回null,否则返回错误提示
|
|
66
|
-
*/
|
|
67
|
-
stop(option) {
|
|
68
|
-
var msg = null;
|
|
69
|
-
return msg;
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* @description 结束
|
|
74
|
-
* @param {Object} opiton 配置参数
|
|
75
|
-
* @return {String} 成功返回null,否则返回错误提示
|
|
76
|
-
*/
|
|
77
|
-
end(option) {
|
|
78
|
-
var msg = null;
|
|
79
|
-
return msg;
|
|
80
|
-
},
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* @description 插件
|
|
84
|
-
* @param {String} item 插件项
|
|
85
|
-
* @return {Object} 旗下插件和信息
|
|
86
|
-
*/
|
|
87
|
-
help(item) {
|
|
88
|
-
var tip = "";
|
|
89
|
-
switch (item) {
|
|
90
|
-
case "run":
|
|
91
|
-
break;
|
|
92
|
-
default:
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
return tip;
|
|
96
|
-
},
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* @description 主程序
|
|
100
|
-
* @param {Object} param1 参数1
|
|
101
|
-
* @param {Object} param2 参数2
|
|
102
|
-
* @return {Object} 返回执行结果
|
|
103
|
-
*/
|
|
104
|
-
main(param1, param2) {
|
|
105
|
-
var ret = null;
|
|
106
|
-
return ret;
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* @description 指令(类似命令提示符)
|
|
111
|
-
* @param {String} content 指令内容
|
|
112
|
-
* @return {String} 执行结果
|
|
113
|
-
*/
|
|
114
|
-
cmd(content) {
|
|
115
|
-
var ret = "";
|
|
116
|
-
return ret;
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* @description API接口(用于其他插件调用该插件时)
|
|
121
|
-
* @param {Object} ctx HTTP上下文
|
|
122
|
-
* @param {Object} db 数据库管理器
|
|
123
|
-
* @return {Object} 执行结果
|
|
124
|
-
*/
|
|
125
|
-
api(ctx, db) {
|
|
126
|
-
var ret = "";
|
|
127
|
-
return ret;
|
|
128
|
-
},
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* @description 聊天(通过聊天的方式驱动插件, 用于机器人开发)
|
|
132
|
-
* @param {String} from_user 发送消息人
|
|
133
|
-
* @param {String} to_user 接收消息人
|
|
134
|
-
* @param {String} content 内容
|
|
135
|
-
* @param {String} group 群组 如果是个人,群组为空
|
|
136
|
-
* @param {Number} type 群类型, 1永久会话/群、2临时会话/群
|
|
137
|
-
* @param {String} msg_type 消息类型, event事件型、message消息型。默认消息型
|
|
138
|
-
* @param {Object} 数据管理器
|
|
139
|
-
* @return {String} 回复内容
|
|
140
|
-
*/
|
|
141
|
-
async chat(from_user, to_user, group, content, type, msg_type, db) {
|
|
142
|
-
var ret = "";
|
|
143
|
-
return ret;
|
|
144
|
-
}
|
|
145
|
-
};
|
package/demo/app/test/app.json
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
[{
|
|
2
|
-
// 目标对象
|
|
3
|
-
"target": "/api/test*",
|
|
4
|
-
// 事件名称, 用于动态增删改
|
|
5
|
-
"name": "test_client",
|
|
6
|
-
// 标题, 用于开发者查看事件
|
|
7
|
-
"title": "示例事件",
|
|
8
|
-
// 描述, 用于介绍该事件是做什么用的
|
|
9
|
-
"description": "描述事件使用方法",
|
|
10
|
-
// 阶段, 分执行前before、验证check、主要main、渲染render、执行后after阶段
|
|
11
|
-
"stage": "main",
|
|
12
|
-
// 响应方法 GET请求、POST请求、ALL所有请求,如果非API事件可自定义
|
|
13
|
-
"method": "ALL",
|
|
14
|
-
// 函数文件, 当事件触发时执行指定的脚本
|
|
15
|
-
"func_file": "./main.js",
|
|
16
|
-
// 执行顺序, 数值越小越优先执行
|
|
17
|
-
"sort": 100,
|
|
18
|
-
// 状态
|
|
19
|
-
"state": 1
|
|
20
|
-
}]
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// 使用api管理器
|
|
2
|
-
var api = $.api_admin('demo_client', 'demo_client');
|
|
3
|
-
// 首次启动更新api接口;
|
|
4
|
-
api.update();
|
|
5
|
-
// 使用mysql数据库管理器
|
|
6
|
-
var sql = $.mysql_admin('sys', __dirname);
|
|
7
|
-
sql.setConfig($.config.mysql);
|
|
8
|
-
sql.open();
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @description 接口主函数
|
|
12
|
-
* @param {Object} ctx HTTP上下文
|
|
13
|
-
* @param {Object} db 数据管理器,如: { next: async function{}, ret: {} }
|
|
14
|
-
* @return {Object} 执行结果
|
|
15
|
-
*/
|
|
16
|
-
async function main(ctx, db) {
|
|
17
|
-
$.push(db, sql.db(), true);
|
|
18
|
-
return await api.run(ctx, db);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
exports.main = main;
|