node.js - 将对象解包为可选参数
问题描述
我以 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 中将对象解包为函数的可选参数?
解决方案
为了做到这一点,我必须首先将对象转换为其键值对的数组,然后像这样解压缩数组:
write(object) {
message = objectToArray(obj); // in the OP example: ["key1", "val1", "key2", "val2"]
redisClient.xadd('streamName', 'objectId', ...message, function (err) {...});
}
推荐阅读
- php - 检查代码点火器中是否存在表记录?
- compilation - 无法在 xenial 上编译 QGIS 3.2;PyQt5 中的 Python3 错误(未定义符号:PySlice_AdjustIndices)
- json - json:无法将字符串解组为 []main.KVU 类型的 Go 值
- node.js - 成功登录后如何将 JWT 与每个请求一起发送?
- database - Greenplum查询成本与查询分析不匹配
- ruby-on-rails - 防止用户在任何月份的某些日子编辑帖子
- java - 错误:缺少 JavaFX 运行时组件,需要使用 JDK 11 运行此应用程序
- html - Angularjs输入限制
- javascript - 如何从字符串 Vue.js 中删除 HTML 标签
- mysql - 如何按顶级父类别获取所有项目?