支持动态加载、卸载以及版本升级的数据迁移。其中通过Module注册的回调卸载时自动清理
name当前模块名字, string类型migrations升级迁移列表, 数组类型, 每项元素需要有version,name,value三个属性version版本号 number类型name名称 string类型valuesql或者具体方法 string或function类型
-
ModuleBase:regCallback(eventNameOrCallbackKeyOrFn, fn)注册回调-
参数
eventNameOrCallbackKeyOrFn- 可以传入NL.Reg*对应的事件名称,如NL.RegLoginEvent 传入
LoginEvent - 自定义的名称用于非全局回调(如NPC创建回调)
- 匿名回调(如NPC创建回调)
- 可以传入NL.Reg*对应的事件名称,如NL.RegLoginEvent 传入
-
参数
fn- 回调函数,如果eventNameOrCallbackKeyOrFn是匿名回调,fn可以传nil
-
返回值
eventNameOrCallbackKeyOrFn,lastIx,fnIndexeventNameOrCallbackKeyOrFn函数的全局Key,用于传入NL.Reg*lastIx当前模块下的注册序列fnIndex全局注册序列
-
-
ModuleBase:unRegCallback(eventNameOrCallbackKey, fnOrFnIndex)反注册回调-
参数
eventNameOrCallbackKey- 可以传入NL.Reg*对应的事件名称,如NL.RegLoginEvent 传入
LoginEvent - 自定义的名称用于非全局回调(如NPC创建回调)
- 可以传入NL.Reg*对应的事件名称,如NL.RegLoginEvent 传入
-
参数
fnOrFnIndex- 可入传入注册用的回调函数
- 也可以fnIndex 全局注册序列
-
-
ModuleBase:onLoad()模块注册钩子,由具体实现模块实现 -
ModuleBase:onUnload()模块卸载钩子,由具体实现模块实现 -
ModuleBase:logInfo(msg, ...)打印日志 -
ModuleBase:logDebug(msg, ...)打印日志 -
ModuleBase:logWarn(msg, ...)打印日志 -
ModuleBase:logError(msg, ...)打印日志 -
ModuleBase:log(level, msg, ...)打印日志 -
ModuleBase:addMigration(version, name, sqlOrFunction)创建一个新迁移
具体模块加载在ModuleConfig.lua
加载Modules下的Module,Module的作用域相互独立,除非手动指定全局变量,否则不会影响其他Module,如需访问其他Module可通过getModule获取
loadModule('admin') --加载admin模块
加载Module目录下的普通lua, 普通lua都会在一个公共的作用域下执行。除非手动指定为全局变量,否则只会影响普通lua,module不能访问相关变量/方法
useModule('Welcome') --加载Welcome
获取对应的Module
卸载Module
重新加载Module
完整文档: 点击我