Node.js错误:太多参数上传批量数据时出错
我有一个任务,通过csv文件批量上传用户数据。 我正在使用nodejs
和express
框架。 当我提交60到70行的csv文件它工作正常,但是当它超过70行时,开始给服务器错误太多的参数。 经过一番研究,我认为它可能是parsing器大小的问题,所以我尝试了这个博客 ,但它没有工作的错误仍然是一样的。
这里是我的身体parsing器的代码:
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)
那么,谁能告诉我我要去哪里? 任何build议都会有所帮助。 提前感谢。
在你的代码中,你根本没有使用parameterLimit
,就像在你发布的博客中指出的一样。
var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: false, parameterLimit: 1000000 // experiment with this parameter and tweak }));
我不知道你们在testing你的API,但是对我来说,这是因为我在Postman中将Content-Type
头设置为application/x-www-form-urlencoded
。 一旦我删除头部和身体部分下使用form-data
,它解决了这个问题。 上传文件时务必使用form-data
。 希望能帮助到你…
正如其他人所说,你需要设置parameterLimit
来处理“太多的参数”错误。 您可能还需要将limit
设置为较大的大小以避免加载大小错误。 在CSV的情况下,urlencoded限制将被应用,但其他人也可能想要设置JSON限制。 除非代码中有其他地方覆盖这些设置,否则以下设置将起作用:
var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb', parameterLimit: 1000000})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true, parameterLimit: 1000000}));
- 节点post消息与大身体(1.3 MB)错误:413请求实体太大
- 在request.pipe之前防止快速的body-parser移除主体
- 对象函数createServer()没有方法'bodyparser'
- Express4.10 bodyParser req.body undefined
- 使用身体分析器来传递zip文件
- 如何用NodeJS的bodyparser将Google的GWT请求体读入stringvariables?
- Webstorm 8.0.5关于“未解决的方法或function”
- 使用内容types:multipart / form-data不能使用express post方法
- 从NodeJS的AJAX请求中获取数据并存储在数据库中