如何在Node.js中为带有子类别的应用组织路由并使其模块化

时间:2019-03-22 04:22:36

标签: node.js express routing categorization

我对Node.js有基本的了解,并且正在开发自己的应用程序。 虽然我了解了路由和控制器的工作原理,但我只看到了所有路由都具有相似结构的教程,这些结构非常简化且严格。

我对我的应用有三个要求:

  1. 能够显示类别/子类别,而不必使用教程中几乎专用的ID。我想要的网址如下:www.domain.com/women/dresses/silk/dress-item-1

  2. 它必须是模块化的,以便我可以添加新类别,而不必为所有类别定义路由。例如,如果我添加了“衬衫”,我将自动有www.domain.com/women/shirts/...个可用。或者,如果我添加了“男人”,我将有www.domain.com/men/...个可用。

  3. 我希望可以选择以某种方式无限期地添加和堆叠子类别,以获得www.domain.com/women/dresses/silk/long/black/dress-item-1之类的东西。我知道我可以使用标签来定义项目,但是我想知道是否可以这样做。

1 个答案:

答案 0 :(得分:0)

您可以添加一个中间件来解析uri并根据基础模型制定上下文。然后将其传递给控制器​​。例如,“ women / dresses / silk / long / short / dress-item-1”应表示您正在尝试对分层资源,女性有很多衣服,衣服有类型等进行操作。如果将动态控制器添加到控制器列表中,然后中间件应从列表中找出合适的控制器,并将控制权移交给其他人。这就是为什么我说要使用中间件,它可以使您的代码保持整洁和结构化。