在来自mozilla的快速教程中,
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/skeleton_website
他们写
var usersRouter = require('./routes/users');
app.use('/users', usersRouter);
在其他教程中,他们写这样的东西,
require('./routes/authRoutes')(app);
这两个相当吗?
答案 0 :(得分:0)
在没有看到您提到的其他教程的代码的情况下,我无法确切确定它们如何使用传递给导入代码的app
对象,但是我怀疑在{{1 }}模块仅将路由器对象连接到指定的.routes/authRoutes
对象。很有可能以与Mozilla Express教程中提供的代码相同的方式完成该操作。
在两种情况下,都将定义一个路由处理程序,然后将其注册为与指定路由匹配的任何路由的处理程序。在您提到的情况下,该路由将是app
路由。因此/users
对象将具有许多路由处理程序,例如,为路由usersRouter
和/abc
定义的路由处理程序。因此,将/def
对象注册为usersRouter
路由的路由处理程序将意味着将处理路由/users
和/users/abc
。