【问题标题】:How does PouchDB decide whether to use GET or POST for a view?PouchDB 如何决定视图使用 GET 还是 POST?
【发布时间】:2019-03-06 03:40:15
【问题描述】:

PouchDB 的 map/reduce 查询 API 可以向 CouchDB 发送很长的 GET 参数,也可以 POST。 PouchDB 似乎会根据情况做一个或另一个。它是如何决定的,可以用参数选择方法吗? https://pouchdb.com/api.html#query_database

【问题讨论】:

    标签: pouchdb


    【解决方案1】:

    当使用 map/reduce 视图时opts.keys 选项未定义时,PouchDB 会考虑使用 POST,但它也会检查 GET url 是否太长。不幸的是,使用 stackoverflow.com 挑选的 PouchDB 的 MAX_URL_LENGTH 比 CouchDB 2.3 的最大长度长。因此,具有中等数量键的查询将使用 GET 并失败。没有强制使用一种或另一种方法的选项。

    https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-abstract-mapreduce/src/index.js#L265

    (看起来 PouchDB 对于其他 CouchDB API 何时使用 POST 有不同的规则)

    我可以发送到我的 CouchDB 2.3 的最长 GET 请求是 1335 字节或 1300 字节,没有协议、主机和端口。

    事实证明这是 CouchDB 2.3 中的回归,应该在 CouchDB 2.3.1 中修复。 https://github.com/apache/couchdb/issues/1810

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 2016-07-03
      • 1970-01-01
      相关资源
      最近更新 更多