2017-06-22 115 views
0

我不明白为什么下面的示例工作:https://github.com/auth0-samples/auth0-nodejs-webapp-sample/tree/master/01-Login/routes具有相同路由的NodeJS Express路由器?

如果你看看两个路由器,他们暴露相同的路由'/'。当用户通过验证(扔Auth0),index.js路由器的“/回调”的路线被称为这是做如下:

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

res.redirect('/user'); 

正如app.js声明如下

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

有人可以解释我如何使用user.js路由器的'/'路线?

感谢您的帮助!

回答

0

尽管路由器user.js具有'/'路由,但您正在将user.js路由挂载到'/ user'路径中。所以路由'/'将被视为'/ user /'。

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

如果你在一些其他的路径安装说

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

然后您的user.js的路线将是 '/用户/样品/演示/'。

希望你能理解路由概念

0

他们继承时,他们的主要app.js文件中使用的基本路径

lines 62 and 63你会发现

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

这意味着:

  • 返回的任何路线将具有/的基本路径。
  • user返回的任何路由将具有/user的基路径。

它实际上是一个非常好的模式,可以在Express或Koa中使用,以便您的代码易于管理和更新。

您可以在express routing page上找到更多关于此模式的信息,最后一个部分叫做express.Router

相关问题