JSONコンテンツをファイルからグローバル変数にロードしていた古いLUAメソッドを「クラス」に移動しようとしています。しかし、常に次のエラーが発生します。
attempt to call field 'decode' (a nil value)
attempt to index global 'cjson' (a nil value)
lua はよくわかりませんが、ほとんどすべての組み合わせを試しても結果が得られなかったので、このエラーが発生する理由を説明していただけますか?
モジュールの現在の実装は次のようになります。
Config = {}
Config.__index = Config
function Config.create(config_filename)
local cjson = require("cjson")
local config = {}
setmetatable(config,Config)
local f = io.open(config_filename, "r")
local content = f:read("*a")
f:close()
config = cjson.decode(content)
return config
end
return Config
最終結果として、他のファイルから次のようなものを実行したいと思います:
local config_class = require("config")
local config = config_class.create("/path/to/file.json")
ngx.say(config:some_configuration_data())