我格式化一个字符串(我可以用任何方式格式化字符串)
e.g
id1:234,id2:4566,id3:3000
然后对其进行加密并通过查询字符串传递
?qs=djdjdjfjf57577574h33h3h3hh3h3
然后在节点
上解密它 id1:234,id2:4566,id3:3000
这是格式化字符串然后将其转换为节点
中的数组的最佳方法 arr[id1] = "234";
arr[id2] = "4566";
arr[id3] = "3000";
答案 0 :(得分:4)
我认为您想使用hashmap(object)而不是数组:
var obj = {}
然后尝试:
"id1:234,id2:4566,id3:3000".split(",").forEach(function(e){
var record = e.split(":");
obj[record[0]] = record[1];
})
给你:
{id1: "234", id2: "4566", id3: "3000"}
答案 1 :(得分:3)
首先,你所拥有的对象模型更像是一个类似哈希的对象,或者只是一个带有键和值的JavaScript对象,所以最好的方法就是使用JSON.parse。
所以如果你能按照你说的那样做:我可以用任何方式格式化字符串,你最好先改变你的格式,如下所示:
'{"id1":234,"id2":4566,"id3":3000}'
而不是:
id1:234,id2:4566,id3:3000
您可以使用JavaScript对象在客户端JavaScript上使用JSON.stringify
执行此操作,而无需处理字符串格式:
//on the client side
var myObj = {};
myObj.id1 = 234;
myObj.id2 = 4566;
myObj.id3 = 3000;
var objStr = JSON.stringify(myObj);
让我们假设您使用名为encrypt
的函数加密字符串:
var encryptedStr = encrypt(objStr);
//so now you should use encodeURI to be able to put it in the queryString
var queryStringParam = encodeURI(encryptedStr);
现在您将queryStringParam
放入queryString。
然后在node.js端,您应该做的就是将其解析为JSON对象。您可能考虑过的另一个重点是使用decodeURI
。最后一步,我们假设您正在使用名为decrypt
的电子函数:
//the server-side code
var decryptedStr = decrypt(decodeURI(yourQueryString));
var obj = JSON.parse(decryptedStr);
现在obj正是你想要的。