HiLua框架与MoonScript库的交互过程
作者:糖果
上一篇是用.so作为框架的库,这是接上回,用MoonScript实现库。
在HiLua工程中,创建/libs/moon目录,建立MoonScript库代码,如下:
HiLog.moon
1 2 3 4
| class HiLog @log: => print("HiLog...") return "HiLog..."
|
HiLog.lua
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| local HiLog do local _class_0 local _base_0 = { } _base_0.__index = _base_0 _class_0 = setmetatable({ __init = function() end, __base = _base_0, __name = "HiLog" }, { __index = _base_0, __call = function(cls, ...) local _self_0 = setmetatable({}, _base_0) cls.__init(_self_0, ...) return _self_0 end }) _base_0.__class = _class_0 local self = _class_0 self.log = function(self) print("HiLog...") return "HiLog..." end HiLog = _class_0 return _class_0 end
|
创建新工程与app:
1 2
| hi project Test-HiLua hi app Test-HiLua
|
修改一下app.lua
1 2 3 4 5 6 7 8 9 10 11 12
| require "log" local HiLog = require "HiLog" local Application = require "orc" app = Application.new()
app:get("/hilua", function(request,id) ret = HiLog:log() ngx.say(ret) ngx.say('hilua') end)
return app.run()
|
库可以用C写生成SO共享库,也可以用MoonScript翻译成Lua,然后与框架路由结合起
来,这种依赖就是纯调用依赖关联,尽量不产生数据关联。
原文地址:
源码地址: