我正在我的 nodejs 应用程序中创建休息端点,如下所示:
在我的 server.js 中,我有以下代码:
var express = require('express');
var app = express();
app.use(express.json({ limit: '50mb' }));
app.use(express.urlencoded({ limit: '50mb', extended: true }));
app.use(require('./routes/APIRoutes'));
我还尝试了下面的代码,而不是按照潜在重复问题的建议使用 express.json 和 expres.urlencoded。
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
app.use(require('./routes/APIRoutes'));
在我的 APIRoutes 文件中,我有以下代码:
/* --- INIT --- */
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
router.use(bodyParser.json({ limit: '50mb' }));
router.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
var urlencodedParser = bodyParser.urlencoded({ limit: '50mb', extended: true });
router.post('...', urlencodedParser, function (req, res) {
...
});
我尝试了不同的组合和顺序来设置更高的限制。但目前每次我发送 2kb 的有效载荷时,我都会收到 413“(有效载荷太大)”错误。
任何帮助设置限制的正确位置是什么?
最佳答案
我在建议的 TKJohn 副本的一个未被接受的答案中找到了解决我的问题的方法。 我必须添加参数限制,以便我的代码变为:
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 }));
添加后成功了!
我还能够从 APIRoutes.js 中删除代码
router.use(bodyParser.json({ limit: '50mb' }));
router.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
关于node.js - NodeJS 路由器负载太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52016659/