繁体   English   中英

具有相同路由的NodeJS Express路由器?

[英]NodeJS Express routers with same route?

我无法理解以下示例为何起作用: https : //github.com/auth0-samples/auth0-nodejs-webapp-sample/tree/master/01-Login/routes

如果您同时看这两个路由器,它们将公开相同的路由“ /”。 当用户通过身份验证(抛出Auth0)时,将调用index.js路由器的“ /回调”路由,该路由将执行以下操作:

res.redirect('/user');

如以下在app.js中声明的:

var user = require('./routes/user');    
app.use('/user', user);

,我知道将使用user.js路由器...但是在user.js中,没有'/ user'路由,只有'/'。

有人可以解释一下user.js路由器的“ /”路由如何使用吗?

谢谢你的帮助!

尽管路由器user.js具有“ /”路由,但是您正在将user.js路由安装在“ / user”路径中。 因此,路由“ /”将被视为“ /用户/”。

app.use('/user', user);

如果您沿其他路径骑车,请说

app.use('/user/sample/demo', user);

然后,您的user.js路由将为'/ user / sample / demo /'。

希望您了解路由概念

它们从在主app.js文件中使用它们时继承了基本路径

第62和63行,您会发现

app.use('/', routes);
app.use('/user', user);

这意味着:

  • 由返回的任何路由routes将具有一个基本路径/
  • user返回的任何路由的基本路径均为/user

无论是Express还是Koa,这都是一个非常好的模式,可以使您的代码易于管理和更新。

您可以在快速路由页面 (最后一节称为express.Router上找到有关此模式的更多信息express.Router

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM