node.js 学习第五小节 控制器和路由

2017-06-26  本文已影响0人  哈哈乐哈

每次以为看懂了的东西,回过头再来看一遍的时候又懵圈了,我总是这么佩服自己!正如上一节业务逻辑部分,我以为我真的看懂了,但今天看到控制器部分的时候真的傻眼了,代码差不多呀,这又有啥不同呢,差别在哪里,之间又有啥关联,一连串的问号,带着这些疑问再来学习。
继续上一章所理解的,MVC中的C指的就是控制器,在我们学习的项目--实现图片交换功能里,对应的就是 ~-controller.js 和~-routes.js 这两个文件模块,下面分别来理解这两个文件中的代码。

控制器 (controller.js)

先来对比一下以下两个文件的代码:


Screen Shot 2017-06-26 at 7.32.40 PM.png Screen Shot 2017-06-26 at 7.33.01 PM.png

看了好几遍,似乎从心理上理解了这两个相似文件的区别在哪里了。

路由 (routes.js)

MVC 中的路由,就是路径和 Controller 的对应关系。怎么体现的,还是来解析其代码。


Screen Shot 2017-06-26 at 9.49.22 PM.png

老师在教程中写了两点定义路由的注意事项:
1,路由的定义和匹配,是按** HTTP **方法(get/post) + **URL **两者来标识的。这个不难理解,如代码里头的method,path 申明的内容。

2,路由定义的顺序是有讲究的。在 module.exports.routes 数组里面,URL 和 Controller 的对应关系,是按顺序注册到 Express 框架里面的。所以,如果一不小心,顺序安排不当,前端发起的请求很可能就被意料之外的 Controller 拦截。
问题:这个就难理解了,这个顺序指的是什么?是指发起请求的逻辑顺序吗?比如代码中前两个都是打开图片详情页的路径,第三个才是打开图片列表页的路径,但是正常不是先打开图片列表页,再在图片列表页中再打开某张图片的详情页吗?why?

REST API测试
上一篇 下一篇

猜你喜欢

热点阅读