node.js - NodeJS 路由器负载太大

标签 node.js rest express payload

我正在我的 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/

相关文章:

node.js - YUI 压缩器和 PHPStorm

javascript - Nodejs writestream 内存使用情况

node.js - Mongoose 的自定义错误消息

java - 处理连接问题 HttpsURLConnection

asp.net-mvc - 什么最适合认证 ASP.NET MVC REST API? OAuth 2.0 还是 OAuth 1.0?

arrays - 计算嵌套数组 ExpressJS 中的项目数

javascript - Node.js 客户端 session 不创建 req.session

javascript - 获得帖子 react 的空列表。可能是什么原因?

java - 在 Cygwin 中添加 JSON 作为 HTTP PUT 请求中的消息正文?

express - Knex:回滚特定的迁移?