我可以在快递应用程序中使用multiparty作为单一路线吗?

时间:2014-11-19 19:15:58

标签: express body-parser

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

1 个答案:

答案 0 :(得分: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
})

如果你需要绕过快递3中旧bodyParser的多部分解析,你可以替换它:

app.use(express.bodyParser())

用这个:

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

这是有效的,因为bodyParser中间件的来源显示它只是三个中间件解析器的组合:multipartjsonurlencoded

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