doubleyong
管理员
管理员
  • 最后登录2025-12-02
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:7081回复:0

nodejs app.get和app.use的路由路径区别

楼主#
更多 发布于:2017-10-27 13:44
先看一段测试代码:
var express = require('express');
var app = express();
var router = express.Router(); app.get('/', function(req, res){
     console.log('test1');
});
app.use('/', function(req, res){
     console.log('test2');
});



router.get('/', function(req, res){
     console.log('test3');
});

app.listen(4000);

结果:

输入url: localhost:4000
输出结果:test1
输入url: localhost:4000/hello
输出结果:test2
结论:app.get挂载‘/’的路由只响应跟'/'精确匹配的GET请求。 而app.use挂载的'/'的路由响应所有以'/' 为起始路由的路由,且不限制HTTP访问的方法。以下说明:Mounting a middleware at a path will cause the middleware function to be executed whenever the base of the requested path matches the path.


补充:app.all('/' ,function(req,res){ });  // all 不限制http的访问方式, 但进行精确匹配。
注:这里还有router.get('/') , 大家可以测试下,无论以怎么访问都不会打印出test3 .  你可以觉得这是顺序问题,你可以测试即将它放到app.get前也不会打印出来。但如下使用以下代码却可以使用:

app.use('/', router.get('/', function(req, res){ console.log('test3');
    })
)


具体原因:就要参考app和router的区别?
参考:http://www.cnblogs.com/zapple/p/5683016.html

最新喜欢:

饼干.饼干.
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号