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'] –