Ограничение POST для Node.js Express.js bodyParser

Я пытаюсь установить параметр limit для bodyParser.urlencodedParser, поскольку мои данные POST больше значения по умолчанию. В настоящее время мой код выглядит следующим образом, но что бы я ни пробовал, я всегда получаю следующую ошибку:

Ошибка: объект запроса слишком большой

var express = require('express');
var router = express.Router();
var jsonfile = require('jsonfile');
var bodyParser = require('body-parser');

var urlencodedParser = bodyParser.urlencoded({limit: '5mb'});

router.post('/data', urlencodedParser ,function(req, res) {


    if(typeof req.body.data === 'undefined')
    {
       console.log('Missing data');
       res.status(500).send({ error: 'Missing Data Parameters' });
       return;
    }

    // Static return value
    var output = [ 
        {"f" : "1"},
        {"f" : "2"},
        {"f" : "3"}
    ];

    res.send(output);
}

Любая помощь очень ценится.


person scgy    schedule 12.08.2015    source источник
comment
вы пробовали увеличить лимит?   -  person MoLow    schedule 12.08.2015
comment
да, я пробовал 50 МБ, но все равно получаю ошибку   -  person scgy    schedule 13.08.2015


Ответы (2)


Я также испытал ту же ошибку с этим (используя MEAN.js), попытался установить ограничение на экспресс-конфигурацию (как ответил в других потоках), но все еще не повезло с этим.

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

Я успешно исправил проблему, также установив ограничение параметра, как показано ниже:

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

 app.use(bodyParser.urlencoded({
    parameterLimit: 100000,
    limit: '50mb',
    extended: true
  }));

значение по умолчанию для параметра limit - 1000.

Источник из body-parser: https://github.com/expressjs/body-parser#parameterlimit

person IMDWPD    schedule 30.01.2017

У меня возникли проблемы с отправкой данных изображения через ajax и я получил сообщение «Ошибка: слишком большой объект запроса», и мне удалось решить эту проблему, добавив

app.use(bodyParser.json({limit: '50mb', type: 'application/json'}));

но самым важным было убедиться, что я позвонил

app.use(bodyParser());

после того, как я установил предел, надеюсь, это поможет !!

person Matt    schedule 25.07.2016
comment
Теперь, в 2019 году, это генерирует ошибку: deprecated body-parser: use individual json/urlencoded middlewares - person redOctober13; 02.07.2019