将对象解压为可选参数
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) {...});
}
我以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) {...});
}