快速路由 : multiple URLs to the same route

标签 express routes

我试图让多个 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)

  });

});

最佳答案

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

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

关于快速路由 : multiple URLs to the same route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47338471/

相关文章:

node.js - 使用 express node.js 计算 http 请求所花费的时间

javascript - 使用 Node.js 抓取 JavaScript 生成的网站

node.js - 如何在expressjs中获取cookie值

asp.net-mvc-3 - MVC3 路由基础

ruby-on-rails - 如何从 URL 中删除/发布/?

node.js - Express Session + Angular : can't access connect. sid cookie

node.js - 禁止使用 Express Node 服务器访问文件

javascript - AngularJS - $routeProvider 和 data-ng-view 的问题

docker - 在Docker中配置Traefik以路由子文件夹

ruby-on-rails - ActionController::UrlGenerationError:没有自定义路由的路由匹配