Nodejs Express路由器中间件适用于除get之外的所有方法



在为共享部分路径的路由方法创建中间件时,有没有办法排除特定方法(比如GET(?

例如,我有很多形式为/api/item/*的路由。我想要这样的东西来检查坏数据

router.all('/api/item/*', (req, res, next) => {
const { itemId } = req.body;
if (!itemId) return res.sendStatus(404);
/* rest of logic here */
next()
});

但很明显,我不希望GET也经历这个逻辑,因为它将没有req.body

有什么想法吗?

如以上评论中所述,一个解决方案是if (req.method === 'GET') return next();

不久之后,我想到的另一个想法(尽管没有那么优雅(是这样订购我的路线声明:

router.get(...);
router.all(...);

因此,仅将数据检查逻辑应用于非GET请求。

最新更新