1
我正在从nodejs调用一个Lua脚本。我想传递一个数组作为参数。我在解析Lua中的数组时遇到问题。Redis Lua脚本 - 如何将数组作为参数传递给nodejs中的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);
}
);
它给我这个错误:
"ERR Error running script (call to f_b263a24560e4252cf018189a4c46c40ce7d1b21a): @user_script:1: user_script:1: bad argument #1 to 'ipairs' (table expected, got string)
'ARGV [1]'假设是什么值?它如何获得它的价值?例如。它是一个包含逗号分隔的演员列表的字符串吗? – greatwolf
根据https://redis.io/commands/eval,您应该使用'client.value(script,2,...' – greatwolf
@greatwolf,ARGV [1])调用'ARGV'或'KEYS'例如['keyv1','keyv2'] –