我正在使用Node.js和“redis-scripto”模块,并尝试在Lua中定义一个函数:
var redis = require("redis");
var redisClient = redis.createClient("6379","127.0.0.1");
var Scripto = require('redis-scripto');
var scriptManager = new Scripto(redisClient);
var scripts = {'add_script':'function add(i,j) return (i+j) end add(i,j)'};
scriptManager.load(scripts);
scriptManager.run('add_script', [], [1,1], function(err, result){
console.log(err || result);
});
我遇到了这个错误:
[错误:ERR 运行脚本时出错(调用.... @ enable_strict_lua:7:user_script:1:脚本尝试创建全局变量'add']
我发现这是一种保护措施,就像这个帖子中所解释的那样:
"scriptingEnableGlobalsProtection 的文档字符串表明其意图是通知脚本作者常见错误(不使用local)"
但我仍然不理解- scripting.c 是什么?而且更改全局表的解决方案对我来说似乎很危险。
有没有简单的方法可以使用lua将函数设置到redis中?