Express:限制请求大小

时间:2017-04-14 17:48:14

标签: node.js parsing express

要将请求大小限制为123个字节,我使用以下工作正常:

app.use(bodyParser.urlencoded({
    extended: true,
    limit: 123
}));

要解析除" / specialRequest"之外的所有请求,我使用以下内容也可以正常工作:

app.use(/^(?!\/specialRequest)/,bodyParser.urlencoded({
    extended: true
}));

但是我没有将所有请求的请求大小限制为123并解析除" / specialRequest"之外的所有请求。这是我目前的代码:

app.use(/^(?!\/specialRequest)/,bodyParser.urlencoded({
    extended: true,
    limit: 123
}));

但是,这仅限制了与" / specialRequest"不同的请求的请求大小。如何将所有请求的请求大小限制为123并解析所有请求" / specialRequest"?

1 个答案:

答案 0 :(得分:1)

如果您希望/specialRequest的请求正文大小有限但未解析,则可以使用bodyParser.raw()。在这种情况下,req.body将是一个Buffer实例,其中包含请求正文(未解析,但如果它被表示为gzipped或deflated数据,它将被夸大;此行为可以通过它的选择)。

您需要在插入bodyParser.urlencoded()中间件之前声明它:

app.post('/specialRequest', bodyParser.raw({ limit : 123, type : '*/*' }), function(req, res) {
  ...
});

app.use(bodyParser.urlencoded({
    extended: true,
    limit: 123
}));