将对象解压缩为可选参数

问题描述

我将以RedisXADD命令为例。我正试图允许我的write函数将不同长度的对象写入redis流。

最初,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',<unpack object here>,function (err) {...});
}

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

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

解决方法

为此,我必须首先将对象转换为其键-值对的数组,然后像这样解压缩数组:

write(object) {
  message = objectToArray(obj); // in the OP example: ["key1","val1","key2","val2"]
  redisClient.xadd('streamName','objectId',...message,function (err) {...});
}