UNPKG

mm_os

Version:

这是超级美眉服务端框架,用于快速构建应用程序。

87 lines (80 loc) 1.7 kB
const Index = require('mm_machine').Index; const Drive = require('./drive'); /** * RPC导航类 * @extends {Index} * @class */ class RPC extends Index { /** * 构造函数 * @param {Object} scope 作用域 * @param {String} title 标题 * @constructor */ constructor(scope, title) { super(scope, __dirname); this.Drive = Drive; this.type = "rpc"; this.title = title; this.list = []; // 默认启用热更新 this.mode = 3; } } /** * 运行GRPC方法 * @param {Object} db 数据库管理器 * @param {String} class_name 类名 * @param {String} method 方法名称 * @param {Object} query 查询条件 * @param {Object} body 增改项 * @return {Object} 返回执行结果 */ RPC.prototype.run = async function(db, class_name, method, query, body) { if (!db) { db = { ret: null }; } var lt = this.list; for (var i = 0, o; o = lt[i++];) { if (o.config.state === 1 && class_name == o.config.name) { var ret = await o.run(db, method, query, body); if (ret) { db.ret = ret; break; } } } return db.ret; }; /* 导出指令 */ exports.RPC = RPC; /** * RPC事件池 */ if (!$.pool.rpc) { $.pool.rpc = {}; } /** * RPC管理器,用于创建缓存 * @param {String} scope 作用域 * @param {string} title 标题 * @return {Object} 返回一个缓存类 */ function rpc_admin(scope, title) { if (!scope) { scope = $.val.scope + ''; } var obj = $.pool.rpc[scope]; if (!obj) { $.pool.rpc[scope] = new RPC(scope, title); obj = $.pool.rpc[scope]; } return obj; } /** * @module 导出RPC管理器 */ $.rpc_admin = rpc_admin;