最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Express.js路由:可选的splat参数?

运维笔记admin16浏览0评论

Express.js路由:可选的splat参数?

Express.js路由:可选的splat参数?

我有一条看起来像这样的路线:

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
  }
});

但是,这不起作用-如果我呼叫path/foo/bar,它将击中路线,但是如果我呼叫path/foo,则不会。

是否可以有一个可选的splat参数,或者我必须使用正则表达式来检测到这一点?

编辑

更清楚地说,这是我要达到的要求:

  • 第一个和第二个参数是必需
  • 第一个参数是静态的,第二个是命名参数。
  • 可以附加任意数量的可选个附加参数,但仍然可以到达路线。
回答如下:

这适用于Express 4上的/ path和/ path / foo,请注意*之前的?

router.get('/path/:id*?', function(req, res, next) {
    res.render('page', { title: req.params.id });
});
发布评论

评论列表(0)

  1. 暂无评论