2

我有一个 Express 3 应用程序,它对大多数路线使用 bodyParser。(大多数路线只接受多部分。)我有一条路线将解析最大 1GB 的文件,bodyParser 似乎无法处理。我想只为这条路线使用多方,所以我不必重写整个 API。这可能吗?

4

1 回答 1

1

您可以通过执行以下操作为单个路由提供中间件:

var multipartyMiddleware = function (req,res,next){
  //put your code to parse multipart here and call "next" when done
}

app.post('/this/is/a/single/route', multipartyMiddleware, function(req,res){
  //do normal business logic in this route and send the response
})

如果您需要绕过bodyParserexpress 3 中旧的多部分解析,您可以替换它:

app.use(express.bodyParser())

有了这个:

app.use(express.json())
app.use(express.urlencoded())

之所以可行,是因为 bodyParser 中间件的来源表明它只是三个中间件解析器的组合:multipartjsonurlencoded

在此处查看连接 2.X 源:https ://github.com/senchalabs/connect/blob/2.x/lib/middleware/bodyParser.js#L54

于 2014-11-19T21:16:50.180 回答