2017-01-05 2 views
1

Я работаю над узловым графическим проектом, пытаясь отправить изображение формата base64 на сервер.Ошибка: запросить объект слишком большой в службах graphql узла

Я использую модуль bodyparser и настроил его как ниже.

app.use(bodyparser.text({type: 'application/graphql'})); 

app.use(bodyparser.json({limit: '50mb'})); 
app.use(bodyparser.urlencoded({limit: '50mb', extended: true})); 

Я могу отправить base64 изображения по услугам прямой узел, но когда он приходит к graphql услуг, он бросает ошибку, как:

Error: request entity too large

+0

Попробуйте установить тип. var urlencodedParser = bodyParser.urlencoded ({extended: true, limit: 1024 * 1024 * 20, type: 'application/x-www-form-urlencoding'}) – digit

+0

Thanq для вашего ответа @digit, я попробовал, но это не работал на меня. –

ответ

0

Вы используете пакет graphql-express НПМ?

Если да, то проблема, скорее всего, эта линия: https://github.com/graphql/express-graphql/blob/master/src/parseBody.js#L112

Как вы можете видеть, это устанавливает максимальный размер 100kb для запроса.

Мы столкнулись с той же проблемой и зафиксировали ее путем разметки хранилища и вручную увеличили максимальный размер запроса.

Это может быть хорошей возможностью внести свой вклад в пакет! Было бы неплохо, если бы предел был настраиваемым.

+0

Привет, thanq для вашего ответа, я использую модуль «graphql», а не модуль «graphql-express». –

+0

Ahh хорошо интересный. Часто вы будете использовать оба пакета одновременно. Пакет 'graphql' имеет дело с схемой, типами, резольверами и т. Д., В то время как' express-graphql' принимает схему, созданную из пакета 'graphql', и предоставляет ее в Интернет через экспресс-сервер. – mparis