将对象解压为可选参数

Unpack object into optional parameters

我以Redis的XADD命令为例。我试图让我的 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', 'objectId', <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) {...});
}