0

我以 Redis 的XADD命令为例。我试图让我的write函数将不同长度的对象写入 redis 流。

最初,in 中的命令redis-cli如下所示: XADD streamName objectId key1 val1 key2 val2 ...

在 NodeJS 中:

redisClient.xadd('streamName', 'objectId', 'key1', 'val1', 'key2', 'val2', function (err) {
  if (err) {
    console.log(err);
  }
});

我试图用一种更简单的方法来包装它:

write(object) {
  redisClient.xadd('streamName', 'objectId', <unpack object here>, function (err) {...});
}

write({key1: 'val1', key2: 'val2', ...})

如何在 NodeJS 中将对象解包为函数的可选参数?

4

1 回答 1

0

为了做到这一点,我必须首先将对象转换为其键值对的数组,然后像这样解压缩数组:

write(object) {
  message = objectToArray(obj); // in the OP example: ["key1", "val1", "key2", "val2"]
  redisClient.xadd('streamName', 'objectId', ...message, function (err) {...});
}
于 2020-11-12T13:15:47.777 回答