将多个数组字段作为参数

时间:2014-04-17 10:15:47

标签: node.js redis node-redis

我正在尝试重构一些代码。在整个代码库中,我有代码存储与用户相关的信息:

this.users[user][field] = data ;

请注意,可能存在任意数量的子字段(包括无),如下所示:

this.users[user][field][subfield1][subfield2] = data ;

这些信息的检索结果如下:

var result = this.users[user][field] ;

在生产中,实际数据将存储到Redis中。 为了做好准备,我想将这些访问重构为两个函数,比如function storeUserData(user, fields, data)function retrieveUserData(user, field)

如果只有一个字段,我可以做到这一点。但是,如何编写这两个函数以允许任意数量的子字段(理想情况下也没有)?

编辑:长期目标是模糊redis密钥和node.js数组之间的差异。 这样我就可以访问一个节点子字段,如下所示:'users.user.id'并且还可以像这样使用redis:users.user.*.id。这似乎可行吗?

1 个答案:

答案 0 :(得分:0)

您可以将fields参数作为Array传递。然后在你的阅读功能中执行类似

的操作

function retrieveUserData(user,fields){

//想象字段是['field','subfield1']

var fieldVariable = this.users [user] for(f = 0; f< fields.length; ++ f){  fieldVariable = fieldVariable [fields [f]]; }

//在这一行中fieldVariable将指向this.users [user] ['field'] ['subfield1']

return fieldVariable; }

希望它有所帮助!