我正在从nodejs调用Lua脚本。我想将数组作为参数传递。我在解析Lua中的数组时遇到问题。

下面是一个示例:

var script = 'local actorlist = ARGV[1]
if #actorlist > 0 then
for i, k in ipairs(actorlist) do
   redis.call("ZADD","key", 1, k)
end
end';

client.eval(
     script, //lua source
     0,
     ['keyv1','keyv2']
     function(err, result) {
         console.log(err+'------------'+result);
     }
    );

它给了我这个错误:

最佳答案

您可以使用 ARGV 来做到这一点:

local actorlist = ARGV

for i, k in ipairs(actorlist) do

并像这样在控制台中传递参数:
eval "_script_" 0 arg1 arg2 argN

08-26 14:22