如何禁用正文解析器 json 并在某些 url 上进行 urlencoded?

How to disable body parser json and urlencoded on certain urls?

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())

所以我有一个问题,只要 URL 不包含上述内容,我将如何制作 bodyParser json 和 urlencoded only 运行。我从 github 问题中获得了这段代码,但我似乎无法将它们都制作成 运行。有没有更好的方法来执行此操作或如何修复我当前的代码?

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

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

app.use(bodyParser.json());

并在需要的地方使用 body-parser 中间件,如下代码所示:

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

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

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