Node.js 错误:上传批量数据时出现参数过多错误

新手上路,请多包涵

我的任务是通过 csv 文件批量上传用户数据。我正在使用 nodejsexpress 框架。当我提交具有 60 到 70 行的 csv 文件时它工作正常,但是当它超过 70 行时它开始给服务器错误太多参数。经过一些研究,我得出结论,这可能是正文解析器大小的问题,所以我尝试了 这个博客,但没有成功,错误仍然存在。

这是我的正文解析器代码:

 var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
app.use(cookieParser());
app.use(bodyParser({limit: '50mb'}));
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({ extended: false }));

错误信息:

 2016-04-19T10:29:45.299Z - error: [req#d3a1fa1a-278e-496e-9cb1-b3a944e3d1c8/app] [App] Error: too many parameters Error: too many parameters
    at queryparse (d:\Git\gap-vm 13416\node_modules\body-parser\lib\types\urlencoded.js:119:17)
    at parse (d:\Git\gap-vm 13416\node_modules\body-parser\lib\types\urlencoded.js:64:9)
    at d:\Git\gap-vm 13416\node_modules\body-parser\lib\read.js:91:18
    at IncomingMessage.onEnd (d:\Git\gap-vm 13416\node_modules\raw-body\index.js:136:7)
    at IncomingMessage.g (events.js:273:16)
    at emitNone (events.js:80:13)
    at IncomingMessage.emit (events.js:179:7)
    at endReadableNT (_stream_readable.js:906:12)
    at nextTickCallbackWith2Args (node.js:474:9)
    at process._tickCallback (node.js:388:17)

所以,谁能告诉我哪里出错了。任何建议都会有所帮助。提前谢谢。

原文由 Anonymous 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 355
1 个回答

正如其他人提到的,您需要设置 parameterLimit 来处理“太多参数”错误。您可能还需要将 limit 设置为更大的大小以避免加载大小错误。在 CSV 的情况下,将应用 urlencoded 限制,但其他人可能也想设置 JSON 限制。以下设置将起作用,除非代码中有其他地方覆盖了这些设置:

 var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true, parameterLimit: 1000000}));

原文由 Andrew 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题