nodejs在子路由中的express()和express.router()之间的差异



i在我的服务器中创建一个子路由,例如'/users',它使用userRoute = express.Router()

但是在MountPath部分中的Express Document中,它使用另一种方式,例如使用userRoute = express()进行子路由,并将其称为sub App,此处是:

var app = express(); // the main app
var admin = express(); // the sub app
...
app.use('/admin', admin); // mount the sub app

他们的区别和用法是什么?

您始终需要使用express()来创建顶级服务器应用程序,但是要创建包含隔离路由块或其他功能的子应用程序,则可以在安装新的express()应用程序之间进行选择或express.Router()路由器。

它们之间的区别在于该块提供的特定功能的数量;路由器更简单,主要专注于路由,并且在许多情况下,您只想在逻辑上组织应用程序。如果您查看已记录的属性,方法&应用程序和路由器对象都可以使用的事件,您会看到应用程序具有路由器所做的所有内容,可以将其他内容分组为四个主要功能领域:

  1. 应用程序设置(get()set()disable()disabled()enable()enabled()
  2. 模板(engine()render()locals
  3. 可以在由父应用(mount事件)安装时通知的能力
  4. 访问其安装在(mountpathpath()
  5. 的路径

因此,如果您不需要使用任何一种,或者在某些情况下不需要使用它们,但不需要与父级隔离,则可以使用路由器。

感谢jfriend00当我使用app而不是router时,我可以设置特定的主题引擎或...为我的路线。

最新更新