2015-08-12 2 views
3

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

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

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); 
} 

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

+0

Вы пытались сделать предел больше? – MoLow

+0

да, я пробовал 50mb, но все равно получаю ошибку – scgy

ответ

5

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

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

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

app.use(bodyParser()); 

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

9

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

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

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

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

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

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

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