分享
三行代码  ›  专栏  ›  技术社区  ›  Two Horses

如何区分中的路径和路径参数快递.js?

  •  0
  • Two Horses  · 技术社区  · 5 天前

    // Get category by id
    innerRouter.get('/:id', categoriesController.getById)
    
    // Get all categories along with their subcategories
    innerRouter.get('/withSubcategories', categoriesController.getAllWithSubcategories)
    

    问题是,express似乎无法区分这两者,例如在这个请求中:

    http://localhost:3000/api/categories/withSubcategories

    Express实际上会调用 categoriesController.getById 而不是 categoriesController.getAllWithSubcategories

    我知道我可以创建一条路线然后检查 req.params.id ,但我想相信有一种更优雅的方式来做这件事,是吗?

    1 回复  |  直到 5 天前
        1
  •  1
  •   Aplet123    5 天前

    Express对定义路由的顺序很敏感,所以移动 /withSubcategories 在上面 /:id /:id号 有点像 /category/:id