将查询参数序列化为文件名

时间:2015-04-01 15:51:22

标签: node.js file-io

我想将API请求1 :: 1映射为文件名。

这意味着,除其他外,将查询参数序列化为文件名安全的东西,理想情况下在Windows和* nix上。

如果api请求是这样的:

api/eggs/fresh?search=brown&order=asc

然后文件名可能是:

api/eggs/fresh?search=brown&order=asc.json

但是? char和&是不安全的,所以我想我必须对它们进行编码。

序列化必须是双向确定性的。我必须能够恢复数据。例如,将所有非法字符转换为_将不符合此标准。

是正确的方法querystring.encode吗?这用于编码URL,但如果%是文件系统安全的,则可能有效。 How do I URl encode something in Node.js??或者有更适合文件系统的东西吗?

1 个答案:

答案 0 :(得分:0)

我遵循这个过程:

  1. 获取文件夹+资源名称
  2. 在请求中获取params数组
  3. Alphabetize params(所以命令并不重要)
  4. 使用&加入params(我认为这在现代文件系统中是安全的)
  5. Concat folder/resource + __&__ + paramString + .json
  6. 如果有人使用__&__作为实际查询的一部分,则会失败,但我认为这不太可能。不是最干净的解决方案,我会爱一个更好的解决方案!