当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 如何将bodyParser上传限制设置为特定路由而不是中间件中的全局?

来源:互联网 收集:自由互联 发布时间:2021-06-16
这是一个示例(Express 3)中间件设置,它在全球范围内起作用: app.configure(function () { app.use(express.static(__dirname + "/public")); app.use(express.bodyParser({ keepExtensions: true, limit: 10000000, // set 10MB limit
这是一个示例(Express 3)中间件设置,它在全球范围内起作用:

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              
}));
网友评论