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);
}
どんな助けでも大歓迎です。
私もこれで同じエラーを経験し(MEAN.jsを使用)、(他のスレッドで回答されているように)エクスプレス構成に制限を設けようとしましたが、それでもうまくいきませんでした。
多くのパラメータを渡した場合は、パラメータの制限も設定する必要があるため、問題が制限だけではない場合があることがわかりました。
パラメータ制限を以下のように設定することで、問題を正常に修正しました。
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
parameterLimit: 100000,
limit: '50mb',
extended: true
}));
パラメータ制限のデフォルト値は1000です。
Body-parserからのソース: https://github.com/expressjs/body-parser#parameterlimit
Ajax経由で画像データを送信して「エラー:リクエストエンティティが大きすぎます」を取得するのに問題がありましたが、追加することで解決できました
app.use(bodyParser.json({limit: '50mb', type: 'application/json'}));
しかし、最も重要な部分は、私が電話したことを確認することでした
app.use(bodyParser());
制限を設定した後、これが役立つことを願っています!!