如何在某些url上禁用body解析器json和urlended


let shouldParseRequest = function (req) {
let url = req.originalUrl;
return (url.startsWith('/api/payments/stripe-webhook') || url.startsWith('/uploadimg'));
}
let parseJSON = bodyParser.json({ limit: '900kb' });
let urlencoded = bodyParser.urlencoded({extended: true})
app.use((req, res, next) => shouldParseRequest(req) ? parseJSON(req, res, next) : next())

所以我有一个问题,我该如何使bodyParser-json和urlrencoded只在URL不包括上面的URL时运行。我从github问题中得到了这段代码,但我似乎无法同时运行这两个代码。有更好的方法吗?或者我如何修复当前的代码?

以下是我获取代码的github问题:https://github.com/expressjs/body-parser/issues/245

如果您使用过代码,请删除代码中的以下行。

app.use(bodyParser.json());

并在任何需要的路由上使用body解析器中间件,如下面的代码:

app.post('/', bodyParser.json(), (req, res) => {
//...your code
})

如果在某些路线上不需要它,你可以跳过它,如下所示:

app.post('/url', (req, res) => {
//...your code
});

最新更新