app.use()和app.get()

时间:2016-10-06 15:00:16

标签: node.js express

为什么我在/foo上执行GET请求,我的请求通过示例A中的第一个中间件函数,但在示例B中绕过它?

示例A

GET' / foo"

app.use('/', function(req, res, next) {
     console.log("req passes through here");
     next();
}

app.get('/foo', function(req, res, next) {
     console.log("then req passes through here");
}

例B

GET' / foo"

app.get('/', function(req, res, next) {
     console.log("this part is bypassed...");
     next();
}

app.get('/foo', function(req, res, next) {
     console.log("then req passes through here");
}

app.use()app.get()使用相同的路径参数。

那么如何在/中挂载的中间件未在示例B中执行?

1 个答案:

答案 0 :(得分:2)

app.use()指示应用程序在所有调用中对所有方法(GET,PUT,POST等)使用指定的路径。具体来说是app.use

  

在指定的路径上安装指定的中间件函数:当请求的路径的基础与路径匹配时,执行中间件函数。

虽然app.get()指示它仅为该特定路径使用该特定方法(GET)的路径。

  

使用指定的回调函数将HTTP GET请求路由到指定的路径。