(Firebase / Облачные функции) PayloadTooLargeError: слишком много параметров в queryparse - PullRequest
0 голосов
/ 20 марта 2020

У меня есть функция firebase, которая запускается веб-крючком в стороннем приложении. Они делают пост-вызов моей функции с типом application / x- www-urlencoded, и в теле сообщения есть более 1000 параметров. 1000 - это количество параметров по умолчанию в пакете body-parser, и когда он достигает предела, он выдает ошибку.

PayloadTooLargeError: too many parameters at queryparse 
(/srv/node_modules/body-parser/lib/types/urlencoded.js:151:13) at parse 
(/srv/node_modules/body-parser/lib/types/urlencoded.js:75:9)

Насколько я знаю, функция firebase также имеет express, и body-parser работает в фон и мне было интересно, есть ли способ изменить эти ограничения параметров. Я видел несколько примеров для изменения этих настроек, однако приведенное ниже решение не работало для функции firebase, так как оно не изменяло фактический анализатор тела, работающий за функциями firebase.

var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({
        extended: false,
     parameterLimit: 10000,
     limit: 1024 * 1024 * 10
}));

Будут признательны за любые предложения или решения. , Спасибо.

1 Ответ

0 голосов
/ 20 марта 2020

Я не думаю, что поведение промежуточного программного обеспечения для анализа тела может быть изменено каким-либо образом. В документации нет ничего, что предлагало бы какие-либо параметры конфигурации.

Если это возможно, я рекомендую вместо этого вместо клиента использовать POST с полезной нагрузкой JSON, которая может содержать любые действительные значения JSON, которые вы want.

Другая альтернатива может заключаться в том, чтобы не использовать среду выполнения JavaScript, а вместо этого попробовать Python или Go, используя инструменты развертывания Google Cloud. Вы больше не сможете использовать Firebase CLI, но другие среды выполнения могут иметь другое поведение, соответствующее вашим потребностям.

...