【问题标题】:Serialize query parameters to a filename将查询参数序列化为文件名
【发布时间】:2015-06-06 08:49:10
【问题描述】:

我想用一个文件名映射一个 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??还是有更适合文件系统的东西?

【问题讨论】:

    标签: node.js file-io


    【解决方案1】:

    我正在关注这个过程:

    1. 获取文件夹+资源名称
    2. 获取请求中的参数数组
    3. 按字母顺序排列参数(因此顺序无关紧要)
    4. & 加入参数(我认为这在现代文件系统中是安全的)
    5. 连接folder/resource + __&__ + paramString + .json

    如果有人使用__&__ 作为实际查询的一部分,这将失败,但我认为这不太可能。不是最干净的解决方案,我想要一个更好的解决方案!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多