我有一个Express 3应用程序,它对大多数路线使用bodyParser。 (大多数路由只接受多部分。)我有一条路由将解析大小达1GB的文件,bodyParser似乎无法处理。我想只使用multiparty这条路线,所以我不必重写整个API。这可能吗?
答案 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中间件的来源显示它只是三个中间件解析器的组合:multipart
,json
和urlencoded
。
请在此处查看connect 2.X来源:https://github.com/senchalabs/connect/blob/2.x/lib/middleware/bodyParser.js#L54