这是一个示例(Express 3)中间件设置,它在全球范围内起作用: app.configure(function () { app.use(express.static(__dirname + "/public")); app.use(express.bodyParser({ keepExtensions: true, limit: 10000000, // set 10MB limit
app.configure(function () { app.use(express.static(__dirname + "/public")); app.use(express.bodyParser({ keepExtensions: true, limit: 10000000, // set 10MB limit defer: true })); //... more config stuff }
对于security reasons,我不想在/ upload之外的路由上允许500GB帖子,所以我试图找出如何在特定路由上指定限制,而不是在中间件中全局指定.
我知道multipart middleware in bodyParser()已经嗅出了内容类型,但我想进一步限制它.
这在快递3中似乎不起作用:
app.use('/', express.bodyParser({ keepExtensions: true, limit: 1024 * 1024 * 10, defer: true })); app.use('/upload', express.bodyParser({ keepExtensions: true, limit: 1024 * 1024 * 1024 * 500, defer: true }));
我收到错误错误:当我尝试在上传URL上传3MB文件时请求实体太大.
你是怎么做到这一点的?
只需在使用app.use()时指定可选路径选项即可.app.use('/', express.bodyParser({ keepExtensions: true, limit: 1024 * 1024 * 10, defer: true })); app.use('/upload', express.bodyParser({ keepExtensions: true, limit: 1024 * 1024 * 1024 * 500, defer: true }));