最近接触公司的openResty项目,有的时候需要本地测试一些代码,可以用resty 命令行工具,跑一些代码,防止出现空指针
比如我遇到msg=/usr/local/mzfs/src/mzis-web/xxx.lua:2739: invalid value (nil) at index 3 in table for ‘concat’」,很明显就是 concat 中出现nil 改动代码后,造了一些数据,重新跑了一下错误代码。这个时候就可以 用resty.
resty的参考文档
resty 命令行工具演示
参考上面的例子后
resty -I mod/ ./test.lua
意思就是 -I 选项将 mod/ 目录添加到 Lua 模块搜索路径中,mod目录中 有自定义模块 fun(fun.lua)
test.lua就是本地的 我要测试的代码,内容如下
local functionUtil = require("fun")
local cjson = require "cjson"
print(5);
local skus={};
local t1={["contentType"]="7",["contentId"]="7777"};
local t2={["contentType"]="7",["contentId"]="8888"};
local t3={["contentType"]="7",["contentId"]="999"};
local t4={["contentType"]="8",["contentId"]=""};
local t5={["contentType"]="9"};
local t6={["contentType"]="7",["contentId"]="444"};
local t7={["contentType"]="19",["contentId"]="444"};
skus[1]=t1;
skus[2]=t2;
skus[3]=t3;
skus[4]=t4;
skus[5]=t5;
skus[6]=t6;
skus[7]=t7;
print(#skus)
print(cjson.encode(skus))
local videoIdList = {};
local tmp = 1;
local sku_index = 1;
while sku_index <= #skus do
if skus[sku_index]["contentType"] == "7" then
-- functionUtil 就是自定义模块
if functionUtil.isNotBlack(skus[sku_index]["contentId"]) then
videoIdList[tmp] = skus[sku_index]["contentId"];
print("tmp"..tmp);
tmp = tmp + 1;
end
end
sku_index = sku_index +1;
end
-- Id 拼接
local videoList_str = table.concat(videoIdList,",");
-- 一些打印语句
print(cjson.encode(videoIdList))
print(#videoIdList);
print(videoList_str);
print(111);
print(3);