快速路由:多个 URL 指向同一路由

jwe*_*rre 4 routes express

我正在尝试使多个 URL 在单个快速路由上工作。如何让以下 URL 都路由到同一页面?

看起来这应该可行,但事实并非如此:

router.get("/:slug?(/amp)?", function(req, res, next) {

  if (!req.params.slug) {
    req.params.slug = 'home'
  }

  getData(slug, function(err, data){

    res.render('index', data)

  });

});
Run Code Online (Sandbox Code Playgroud)

小智 8

您可以通过将多个 URL 放入数组中来将其包含在单个快速路由中。在你的情况下,这将是

  app.get(['/', '/:slug', '/amp', '/:slug/amp'], function(req, res, next) {
    if (!req.params.slug)
      req.params.slug = 'home'
    getData(slug, function(err, data){
      res.render('index', data)
    });
  );
Run Code Online (Sandbox Code Playgroud)