node.js在Redis中执行LUA脚本报错:ERR value is not an integer

客官°小女子只卖身不卖艺 2022-05-16 01:29 522阅读 0赞

(error) ERR value is not an integer or out of range
这个错误的原因在于调用是没有制定参数的个数,所以出现解析参数个数时出现范围问题.

假设调用一个脚本,一个参数:

  1. #redis-cli evalsha 643ae8e4fa979df58a8cd2f6ab4d46f3e16ace5e 0x61c808d82a3ac53231750dadc13c777b59310bd9 "{\"balance\":\"5000000000000000000\",\"txs\":0,\"flag\":0,\"type\":0}"
  2. (error) ERR value is not an integer or out of range
  3. // 如下方式调用正常,注意hash脚本后面的**1**表示一个参数
  4. redis-cli evalsha 643ae8e4fa979df58a8cd2f6ab4d46f3e16ace5e 1 0x61c808d82a3ac53231750dadc13c777b59310bd9 "{\"balance\":\"5000000000000000000\",\"txs\":0,\"flag\":0,\"type\":0}"

node.js调用如下:

  1. redisCli.evalsha([self.config.addressLuaHash, 1, contractAddr, JSON.stringify(addr)], function(err){
  2. if (logger.isTraceEnabled){
  3. logger.trace("save address account to redis:", addr);
  4. }
  5. callback(err);
  6. });

发表评论

表情:
评论列表 (有 0 条评论,522人围观)

还没有评论,来说两句吧...

相关阅读