如何在node.js / express路由器中声明必需参数

时间:2017-09-12 11:00:38

标签: node.js express url-routing

我得到了一系列路线,如:

var router = express().Router;
router.get('/',middleware1,middleware2);
router.get('/courses',middleware1,middleware2,..)
router.post('/dates',middleware1,middleware2,..)

app.use('/u',router);

现在,当我在

中声明路线的根目录时
app.use('/u',router);

我想在微应用程序的每个路径中添加必须存在的强制参数,如

app.use('/u/:user_name/',router);

这样我就可以通过router.param检查每个路由中是否存在这个参数。

通过在微应用程序的根目录中定义param而不是在每个单独的路径中都可以这样做

router.get('/:user_name/',middleware1,middleware2);
router.get('/:user_name/courses',middleware1,middleware2,..)
router.post('/:user_name/dates',middleware1,middleware2,..)

因为它们在实际应用程序中实际上很多,所有更改它们都会很痛苦吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

只要您使用的是最新版本的Express,就可以使用@Test private void finalTest() { List<Object> objects = new ArrayList<Object>(); objects.add(test()); //<==== CANNOT DO THIS } 执行此操作。

mergeParams

然后这将起作用:

var router = express.Router({mergeParams: true});
这里记录了

app.use('/u/:user_name/', router);

https://expressjs.com/en/4x/api.html#express.router