Express中app.use()和router.use()之间的区别

我刚刚阅读Express文档,发现了这两个术语,app.use();并且router.use();

我知道app.use();在节点中用于在路径上

,并且我们经常在大多数节点应用中使用它。但是router.use();两者都一样吗?如果没有,有什么区别?

我在这里了解了路由器。我还在SO上找到类似的问题,“

express.Router”和使用“app.get”进行路由之间有什么区别?和app.all(’*’)和app.use(’/’)之间的区别,但它们并没有真正回答我的问题。谢谢。

回答:

router.get仅用于定义子路径。考虑以下示例:

var router = express.Router();

app.use('/first', router); // Mount the router as middleware at path /first

router.get('/sud', smaller);

router.get('/user', bigger);

  • 如果打开 ,smaller则会调用该函数。
  • 如果打开 ,则将bigger调用该函数。

简而言之,app.use('/first', router)将中间件安装在路径

,然后相应地router.get设置子路径。


但是,如果我们改为使用以下内容:

app.use('/first', fun);

app.get('/sud', bigger);

app.get('/user', smaller);

  • 如果您在浏览器中打开 ,fun将会被调用,
  • 对于 ,bigger将被调用
  • 对于 ,smaller将被调用

但是请记住 ,不会调用任何函数。

此链接也可能有帮助:http :

//expressjs.com/api.html#router

以上是 Express中app.use()和router.use()之间的区别 的全部内容, 来源链接: utcz.com/qa/428203.html

回到顶部