美文网首页
node.js 学习第五小节 控制器和路由

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

作者: 哈哈乐哈 | 来源:发表于2017-06-26 23:17 被阅读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

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

  • 首先,这两个模块文件存在的意义是不一样的,意即他俩的作用是不一样的,虽然它们申明的功能中都包括基本的数据操作CRUD,但image-manager.js只对服务器中数据库中的数据进行CRUD处理,而image-controller.js主要针对客户端中的请求进行的CRUD处理,甚至这其间还可能调用到image-manager.js模块进行深层的处理。也不知道理解得对不对,不对请老师指正呵。
  • 其次,这两个模块文件工作的原理是不一样的,比如在controller.js文件中,每一个函数都包括(req, res, next)这几个参数,从客户端中接收用get/post方式发出的请求,不需要加工处理的直接从服务器端里调用对应的数据返回,需要服务器进行加工处理的请求则需转给业务逻辑层,即调用 manager.js 模块进行深处理后再返回。而 manager.js 文件中的函数所包含的参数只存在于数据库中。
路由 (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测试

相关文章

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

    每次以为看懂了的东西,回过头再来看一遍的时候又懵圈了,我总是这么佩服自己!正如上一节业务逻辑部分,我以为我真的看懂...

  • laravel 使用middleware中间件达到加密接口的目的

    一、什么是中间件? 通过之前对路由和控制器的学习,我们知道一个请求可以通过路由分配到某个控制器上然后进行处理,如果...

  • Laravel路由、控制器、模型、视图

    一、路由相关 -> 基础路由设置 -> 路由参数 -> 路由分组 二、控制器 -> 目录结构及创建控制器 cmd进...

  • Thinkphp6.0.2路由、模板渲染等问题

    1、thinkphp6.0.2 index控制器和admin控制器都可以访问,不使用路由的情况下,使用路由还没搞通...

  • Node学习(9)--网络操作

    Node.js 路由 要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数...

  • laravel控制器(controller)

    怎样新建一个控制器控制器和路哟怎么进行关联关联控制器后,路由的特性怎么用?

  • Laravel本就好玩

    隐式控制器 路由声明: 控制器写法 缓存 路由缓存 在你的项目部署完成后执行 生成路由缓存,缓存一旦生成,app/...

  • fastapi路由管理

    fastapi路由管理,和GIN的框架思想一致。入口函数----主路由---控制器---服务 main入口函数,需...

  • node.js(十三)

    Node.js 路由我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相...

  • laravel 基础教程 —— 控制器

    HTTP 控制器 简介 控制器允许你将相应的路由业务逻辑封装在控制器类中进行有效的管理,这样你不必将所有的路由逻辑...

网友评论

      本文标题:node.js 学习第五小节 控制器和路由

      本文链接:https://www.haomeiwen.com/subject/bzrjcxtx.html