71 lines
1.5 KiB
JavaScript
71 lines
1.5 KiB
JavaScript
///////////////////////////////////////////////////
|
|
//////////////cls_mod: 模块基础类//////////////////
|
|
///////////////////////////////////////////////////
|
|
var cls_mod = cls_mod || {
|
|
//构造函数
|
|
new: function(_str_modname, _str_routename, _obj_app) {
|
|
/*
|
|
_str_modname 模块名称
|
|
_str_routename 模块的路由名称
|
|
_obj_app 所属的应用对象
|
|
*/
|
|
|
|
//创建一个实例
|
|
var mod = {};
|
|
|
|
// ================= 实例的公有属性 ================= //
|
|
//模块名称
|
|
mod.modname = _str_modname;
|
|
//路由名称
|
|
mod.routename = _str_routename;
|
|
//所属的应用
|
|
mod.app = _obj_app;
|
|
//将mod对象添加到app的模块列表中
|
|
mod.app.modlist.push(mod);
|
|
mod.app[_str_modname] = mod;
|
|
|
|
// ================= 实例的公有方法 ================= //
|
|
//收包处理
|
|
mod.DoPack = function(_msg) {
|
|
return cls_mod.DoPack(mod, _msg);
|
|
}
|
|
|
|
//输出mod
|
|
cls_mod.OutputMod(mod);
|
|
|
|
return mod;
|
|
},
|
|
|
|
DoPack: function(_obj_mod, _msg) {
|
|
if (typeof(_msg) == "string") {
|
|
_msg = JSON.parse(_msg); //转换json
|
|
}
|
|
//执行rpc
|
|
if (_msg.rpc) {
|
|
if (min_ExitsFunction(_obj_mod[_msg.rpc])) {
|
|
return _obj_mod[_msg.rpc](_msg);
|
|
}
|
|
}
|
|
},
|
|
|
|
OutputMod: function(_obj_mod) {
|
|
if (typeof global !== "undefined")
|
|
{} else {
|
|
global = {};
|
|
}
|
|
|
|
if (typeof module !== "undefined")
|
|
{} else {
|
|
module = {};
|
|
module.exports = {};
|
|
}
|
|
|
|
global[_obj_mod.modname] = _obj_mod;
|
|
global[_obj_mod.modname].DoPack = _obj_mod.DoPack;
|
|
|
|
if (module) {
|
|
module.exports[_obj_mod.modname] = _obj_mod;
|
|
}
|
|
}
|
|
}
|