javascript - Express4.x use方法的原理
迷茫
迷茫 2017-04-11 11:40:31
[JavaScript讨论组]

以下代码是express4.x中的app.js系统默认生成的代码

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use("/",index);

我有几个很困惑的问题
1.按照use的原理,应该logger,bodyParser.json等都是按照顺序执行的中间件,但是我在logger,bodyParser.json方法里面设置断点,为什么我每次网络请求,断点都执行不到,但是我自己写的路由方法却能够执行到

2.看use代码,默认路径为"/",那么就是说只有我访问http://localhost.com:3000的时候这些中间件才会被调动,如果是其他的路径,以上这些中间件都不会被调用,也就是说其他路径的网络请求就不会被上面的中间件(如bodyParser.json)解析?感觉我这样理解不合常理
有哪位能帮我解答下 万分感谢

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
PHP中文网

第一个得看具体情况,比较可能的是你设置的断点并不是它运行的那个文件……node的依赖文件比较混乱,偶尔就会出现我说的那种情况。

第二个问题,useget的路径匹配不一样。看官网的解释:

A route will match any path, which follows its path immediately with a “/”. For example: app.use('/apple', ...) will match “/apple”, “/apple/images”, “/apple/images/news”, and so on.

就是说,get是严格匹配,而use则是匹配当前域。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号