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?)でも同じ問題が発生します。 また、マスターブランチを直接使用しようとしましたが、同じエラーがスローされました。

次のコードは実行されません。

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"} 、引数は次で始まります:
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 評価