PouchDB如何决定是否对视图使用GET或POST?

问题描述 投票:2回答:1

PouchDB的map / reduce查询API可以向CouchDB发送非常长的GET参数,也可以发送POST。 PouchDB似乎做了一个或另一个依赖。它是如何决定的,并且可以用参数选择方法吗? https://pouchdb.com/api.html#query_database

pouchdb
1个回答
0
投票

当使用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对于何时将POST用于其他CouchDB API有不同的规则)

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

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

© www.soinside.com 2019 - 2024. All rights reserved.