Как PouchDB решает, использовать ли GET или POST для представления? - PullRequest
0 голосов
/ 04 марта 2019

API запроса / сокращения PouchDB может отправлять очень длинные GET-параметры в CouchDB или POST.PouchDB, кажется, делает одно или другое в зависимости.Как это решается, и может ли метод быть выбран с параметром?https://pouchdb.com/api.html#query_database

1 Ответ

0 голосов
/ 04 марта 2019

PouchDB рассматривает возможность использования POST, когда параметр opts.keys не является неопределенным при использовании представления карты / уменьшения, но также проверяет, что URL-адрес GET не слишком длинный.К сожалению, MAX_URL_LENGTH PouchDB, выбранный с помощью stackoverflow.com, длиннее максимальной длины CouchDB 2.3.По этой причине запросы со средним числом ключей будут использовать GET и не будут работать.Невозможно принудительно применить тот или иной метод.

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

(похоже, в PouchDB действуют разные правила, когда использовать POST для других API CouchDB)

Самый длинный запрос GET, который я могу отправить на мою CouchDB 2.3, составляет 1335 байт или 1300 байт без протокола, хоста и порта.

Оказывается, это была регрессия в CouchDB 2.3 и должна быть исправлена ​​в CouchDB 2.30,1.https://github.com/apache/couchdb/issues/1810

...