|
阅读:7081回复:0
nodejs app.get和app.use的路由路径区别
先看一段测试代码:
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 |
|
最新喜欢:
|