首页 > 解决方案 > app.use('/users', usersRouter); 之间的区别 并且需要(./routes/users)(应用程序)?

问题描述

在 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);

两者差不多吗?

标签: express

解决方案


在没有看到您提到的其他教程的代码的情况下,我无法确定它们如何使用app传递给导入代码的对象,但我怀疑.routes/authRoutes模块中实现的任何代码都只是将路由器对象连接到指定的app对象。这很可能以与您在 Mozilla Express 教程中提供的代码相同的方式完成。

在这两种情况下,都会定义一个路由处理程序,然后将其注册为与指定路由匹配的任何路由的处理程序。在您提到该路线的情况下,该路线就是/users路线。因此,该usersRouter对象将定义许多路由处理程序,例如,用于路由/abc/def. 因此,将usersRouter对象注册为路由的路由处理程序/users将意味着路由/users/abc/users/def将被处理。


推荐阅读