node.js表示bodyParser POST限制

scg*_*cgy 5 node.js body-parser

我正在尝试为bodyParser.urlencodedParser设置'limit'选项,因为我的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);
}
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢.

IMD*_*WPD 17

我也遇到了同样的错误(使用MEAN.js),试图对快速配置设置限制(在其他线程中回答),但仍然没有运气.

我发现有时问题不仅仅是限制,如果你已经通过了很多参数,你也需要设置参数限制.

我通过设置参数限制成功修复了问题,如下所示:

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

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

参数限制的默认值为1000.

身体解析器的来源:https: //github.com/expressjs/body-parser#parameterlimit


Mat*_*att 10

我在通过ajax发送图像数据时遇到问题,并且"错误:请求实体太大",设法通过添加来解决它

app.use(bodyParser.json({limit: '50mb', type: 'application/json'}));
Run Code Online (Sandbox Code Playgroud)

但最重要的部分是确保我打电话

app.use(bodyParser());
Run Code Online (Sandbox Code Playgroud)

在我设定限制后,希望这有帮助!!

  • 现在到了 2019 年,这会生成一个错误:“已弃用的 body-parser:使用单独的 json/urlencoded 中间件” (2认同)