Connect Middleware Node.js最大文件大小

Connect Middleware Node.js最大文件大小,node.js,ftp,node.js-connect,Node.js,Ftp,Node.js Connect,我有一个建立在node.js上的FTP门户。当上传超过100MB的文件时,我得到一个错误 以下是错误输出: {"error":{"message":"Request Entity Too Large","stack":"Error: Request Entity Too Large\n at Object.exports.error (/home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/ut

我有一个建立在node.js上的FTP门户。当上传超过100MB的文件时,我得到一个错误

以下是错误输出:

{"error":{"message":"Request Entity Too Large","stack":"Error: Request         Entity Too Large\n 
at Object.exports.error (/home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/utils.js:62:13)\n
at limit (/home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/middleware/limit.js:46:47)\n
at multipart (/home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/middleware/multipart.js:97:5)\n
at /home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:57:9\n 
at urlencoded (/home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/middleware/urlencoded.js:52:72)\n 
at /home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:55:7\n 
at json (/home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/middleware/json.js:46:55)\n at Object.bodyParser [as handle] (/home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:53:5)\n 
at next (/home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/proto.js:190:15)\n 
at Object.cookieParser [as handle] (/home/ubuntu/sasite-ftp/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5)","status":413}}
我查看了connect/lib/middleware/limit.js的第46行和第47行:

     if (len && len > bytes) return next(utils.error(413));
这似乎与limit.js中的此函数有关:

module.exports = function limit(bytes){
if ('string' == typeof bytes) bytes = utils.parseBytes(bytes);
if ('number' != typeof bytes) throw new Error('limit() bytes required');
return function limit(req, res, next){
var received = 0
  , len = req.headers['content-length']
    ? parseInt(req.headers['content-length'], 10)
    : null;
如果需要,我可以发布更多的代码,但是您可以在node_modules/express/node_modules/connect中轻松查找connect的代码/

如果任何人有任何关于最大文件大小的实际输入,以及对它的限制,将不胜感激


编辑:最大文件大小为100MB,我应该在哪个文件中输入代码以根据以下建议的第一个答案进行更改。

假设您以某种方式使用Connect multipart中间件,默认最大上载文件大小为100MB,定义如下:

var limit = _limit(options.limit || '100mb');
如果您想设置自己的文件上载限制,多部分中间件有一个
限制
选项,您可以设置:

app.use(connect.multipart({
  limit: '1000mb'
}));
如果您使用的是
connect.bodyParser()
,那么它也会在内部使用多部分中间件,以便以相同的方式指定该选项:

app.use(connect.bodyParser({
  limit: '1000mb'
}));

从connect multiparty Express中间件:

  • 传递的选项与的合并
    表单
    对象,允许您配置上载目录, 大小限制等。例如,如果您希望更改上载目录,请执行以下操作
因此,根据:

  • maxFieldsSize-限制所有字段(不是文件)可以分配的内存量(以字节为单位)。如果超过此值,将发出错误事件。默认大小为2MB
我的工作是:

var app = express(),
    multipart = require('connect-multiparty');

app.use(multipart({
    maxFieldsSize: '20MB'
}));

请注意,
bodyParser
已弃用,将在下一版本的Express中删除,因此不应再使用。感谢您的回答。在我接受之前,你能帮我解释一下我应该在哪里添加代码吗?在node_modules/express/node_modules/connect/middleware/limit.js文件中?或者别的什么地方?@paul mougel有相关的文档吗?你知道替代实现是什么吗?我相信我错了:
bodyParser
没有被弃用,但它使用了被弃用的
multipart
,因此当connect 3.0登陆时,
bodyParser
的行为将发生变化。基本上,
multipart
将被删除,因此您必须使用其他工具,例如forgible或busboy。有关更多信息,请参阅。hello@gtrenco如何处理it中的错误事件?因为它将进入无限