表达不同的路径但相同的逻辑

Express different paths but same logic

我有这样的路线

router.post('/policy', async (req, res, next) => {
    try {
        console.log(req.body);
    } catch (e) {
        console.log(e)
        res.sendStatus(500)
    }
})

我希望在调用 /role 时执行相同的逻辑,正确的方法是什么? (最好不要复制粘贴相同的代码)

我能想到这个逻辑

router.post('/policy', async (req, res, next) => {
    try {
        console.log(req.body);
    } catch (e) {
        console.log(e)
        res.sendStatus(500)
    }
})

router.post('/role', async (req, res, next) => {
    try {
        console.log(req.body);
    } catch (e) {
        console.log(e)
        res.sendStatus(500)
    }
})

为什么我为相同的逻辑命名不同的路由?

因为我希望后端更具可读性和特定于它正在执行的任务,即添加策略或角色

这将适用于路线 /policy/role:

router.post(['/policy', '/role'], async (req, res, next) => {
    try {
        console.log(req.body);
    } catch (e) {
        console.log(e)
        res.sendStatus(500)
    }
})