2017-06-22 158 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

相關問題