发布于 

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,然后与框架路由结合起
来,这种依赖就是纯调用依赖关联,尽量不产生数据关联。

原文地址:

源码地址:


本站由 @anonymity 使用 Stellar 主题创建。