Express.js routing: optional splat param?
express, node.js
Solution
This works for /path and /path/foo on express 4, note the `*` before `?`.
router.get('/path/:id*?', function(req, res, next) {
res.render('page', { title: req.params.id });
});
Problem
I have a route that looks like this: ``` app.all('/path/:namedParam/*splat?',function(req,res,next){ if(!req.params.length){ // do something when there is no splat } else { // do something with splat } }); ``` however, this doesn't work - if I call `path/foo/bar` it hits the route, but if I call `path/foo`, it doesn't. Is it possible to have an optional splat param, or do I have to use a regex to detect this? Edit: to be clearer, here are the requirements I'm trying to achieve: - the first and second params are required - the first param is static, the second is a named param. - any number of optional additional params can be appended and still hit the route.