HiLua框架与MoonScript库的交互过程

作者:糖果

上一篇是用.so作为框架的库,这是接上回,用MoonScript实现库。

在HiLua工程中,创建/libs/moon目录,建立MoonScript库代码,如下:

HiLog.moon

class HiLog
    @log: =>
        print("HiLog...")
        return "HiLog..."

HiLog.lua

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:

hi project Test-HiLua
hi app Test-HiLua

修改一下app.lua

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

原文地址:

源码地址:

糖果

糖果

糖果
LUA教程

风控管理之蜜罐

**目录**{: #toc }* TOC{:toc}# 蜜罐在风控中经常要面临这个问题:哪部分流量来自黑产?可信度高吗?这关系到现有策略效果评估、问题定位、新策略效果评估、模型训练等多个环节。解决这类问题时,蜜罐就起到了一定作用。## 什么是蜜罐?通过一些手段,引诱黑灰产...… Continue reading

Apache APISIX在SAE应用市场发布

Published on December 09, 2019

APISIX后台管理路由创建接口

Published on December 06, 2019