Node-redis: xadd的回调

创建于 2019-11-01  ·  8评论  ·  资料来源: NodeRedis/node-redis

你好,

有没有一种方法可以对xadd进行回调,例如:

redisClient.xadd(streamName, '*',....,function(err,resp){
console.log(resp);
});

我尝试过并且有错误。

谢谢!
麦克风

question

所有8条评论

@ mikeslim7,这个存在。 您能否发布真实代码(而不是.... ),因为我认为这可能只是一个小错误。

我有一个错误而不是电话

redisClient.xadd('mystream', '*', 'field1', 'm1', function (err) {
});

{ ReplyError: ERR unknown command `xadd`, with args beginning with: `mystream`, `*`, `field1`, `m1`, 
    at parseError (/home/work/node_modules/redis-parser/lib/parser.js:193:12)
    at parseType (/home/work/node_modules/redis-parser/lib/parser.js:303:14)
  command: 'XADD',
  args: [ 'mystream', '*', 'field1', 'm1' ],
  code: 'ERR' }

@protectedvar您有一个不支持流的Redis版本(与此问题无关)。

@stockholmux v2.8.0是否支持xadd回调?

@gcobcqwe是的。

我在最新版本的node_redis(2.8.0?)中也遇到了同样的问题。 我还尝试直接使用master分支,并抛出相同的错误。

以下代码无法运行。

const rdb = redis.createClient("redis://localhost:6379");
const send = promisify(rdb.sendCommand).bind(rdb);
const n = {forename: "foo", lastname: "bar"};
send(`XADD nameStream * ${JSON.stringify(n)}`).catch(e => console.error(e));

ReplyError:ERR未知命令xadd namestream * {"forename":"foo","lastname":"bar"} ,以args开头:
在parseError(/Users/hendrik/git/ownprojects/databroker/node_modules/redis-parser/lib/parser.js:193:12)
在parseType(/Users/hendrik/git/ownprojects/databroker/node_modules/redis-parser/lib/parser.js:303:14){
命令:'XADD NAMESTREAM * {“ FORENAME”:“ FOO”,“ LASTNAME”:“ BAR”}',
码:“ ERR”
}

嘿,@ hbel。 我认为您的格式不正确。
XADD mystream * field1 value1 field2 value2 field3 value3
https://redis.io/commands/xadd

此处发布的错误表明该错误直接来自Redis服务器,而不是来自客户端。 因此,我正在关闭此问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

juriansluiman picture juriansluiman  ·  3评论

jackycchen picture jackycchen  ·  4评论

adamgajzlerowicz picture adamgajzlerowicz  ·  4评论

abhaygarg picture abhaygarg  ·  5评论

aletorrado picture aletorrado  ·  6评论