在Nginx中使用Lua模块
问题描述:
我正在使用Nginx + Lua。我有一个Lua模块,我试图从Nginx访问,我确实遇到了一些错误。在Nginx中使用Lua模块
下面是我的Lua模块。
local _M = {}
function Set (list)
local set = {}
for _, l in ipairs(list) do set[l] = true end
return set
end
local items = Set { "Apple", "Pear", "Banana" }
local mt = { __index = _M }
function _M.new(self)
return setmetatable({items=items}, mt)
end
function _M.isFruit(self, item)
if self.items[item] then
return true
end
return false
end
return _M
现在我尝试访问该在的Nginx的access_by_lua指令,因为下面展示
local f = require "fruits"
local fruit = f:new()
fruit:isFruit("Apple")
在这里,我下面得到一个错误。
lua entry thread aborted: runtime error: access_by_lua:3: attempt to call method 'isFruit' (a nil value)
我不明白发生了什么问题。任何帮助,高度赞赏。谢谢!
我使用Nginx的和Lua JIT 1.6.2 2.0.2
编辑:更正错误消息的行号。
它在nginx之外工作吗? – 2014-12-09 13:15:47
在我的env中,你的access_by_lua中的第7行在哪里? – danielgpm 2014-12-09 15:47:27
@AlexeyTen,我在Openresty尝试过,它的工作原理。 – sudhir 2014-12-11 07:02:51