因此,约有99%的端点使用JSON,由于它是REST API,因此其功能完全符合我的要求。但是,有一条特定的路由,即我的Webhooks路由,需要原始数据。
这感觉就像快递团队在过去几天里试图找出一种没有运气的半体面解决方案时完全被忽略的功能。
在他们自己的GitHub上浏览了许多问题以及一些其他SO问题之后,看来此问题的“推荐”解决方案是手动定义您希望在每条路线上使用的解析器,就像一个非常糟糕的解决方案...
希望这里有人可以提供更好的解决方案。
简化代码。
import express from 'express';
import helmet from 'helmet';
import Auth from '../middleware/Auth';
import payments from '../routes/payments';
import users from '../routes/users';
const router = express.Router();
export default app => {
app.use(express.json());
app.use(helmet());
app.use(Auth);
// SHOULD BE JSON
// Has a sub route /payments/webhooks which SHOULD BE RAW
router.use('/payments', payments);
// SHOULD BE JSON
router.use('/users', users);
app.use('/v1', router);
}
已经尝试过在webhooks
路由上使用直接中间件,但是事实证明,如果您在初始解析器之后进行了任何解析器更改,它只会丢弃它们,这似乎是express的一个非常糟糕的设计选择... < / p>