11 2021 档案
摘要:Go 语言中,比较常见的错误处理方法是返回 error,由调用者决定后续如何处理。但是如果是无法恢复的错误,可以手动触发 panic,当然如果在程序运行过程中出现了类似于数组越界的错误,panic 也会被触发。panic 会中止当前执行的程序,退出。 defer panic 会导致程序被中止,但是在
阅读全文
摘要:网页的三剑客,JavaScript、CSS 和 HTML。要做到服务端渲染,第一步便是要支持 JS、CSS 等静态文件。还记得我们之前设计动态路由的时候,支持通配符*匹配多级子路径。比如路由规则/assets/*filepath,可以匹配/assets/开头的所有的地址。例如/assets/js/g
阅读全文
摘要:在上一章中已经实现了分组控制,在这一章中我们实现中间件的功能 中间件是什么 中间件(middlewares),简单说,就是非业务的技术类组件。Web 框架本身不可能去理解所有的业务,因而不可能实现所有的功能。因此,框架需要有一个插口,允许用户自己定义功能,嵌入到框架中,仿佛这个功能是框架原生支持的一
阅读全文
摘要:分组的意义 分组控制(Group Control)是 Web 框架应提供的基础功能之一。所谓分组,是指路由的分组。如果没有路由分组,我们需要针对每一个路由进行控制。但是真实的业务场景中,往往某一组路由需要相似的处理。例如: 以/post开头的路由匿名可访问。 以/admin开头的路由需要鉴权。 以/
阅读全文
摘要:在上一节中我们已经搭建起了自己的服务,并且可以在浏览器中看到服务运行的效果,接下来就要控制路由的访问了,之前我们使用一个map来存储路由,但是这样有一个问题,我们知道所有的服务路由不可能都为静态,一定会有类似hello/:username等类似的路由,我们称此类路由为动态路由,所谓动态路由,即一条路
阅读全文
摘要:服务搭建 net/http包很轻松得帮我们实现web层服务,该架构基本上都是基于这个包来实现的,由于暂时想不到什么好名字,所以把这个框架命名为finto 接下来就开始吧~~~ (一):新建文件夹,命名为kuangjia,新建用于测试的main.go,新建mod文件,并创建框架文件finto,在文件子
阅读全文
摘要:由于go的net/http包十分方便的帮我们实现了一个web服务器所需要的大部分功能,框架的设计模式和思想与语言无关,作为学习采用go来搭建自己的web框架。 为什么需要框架?即使不使用框架,我们依然可以实现相应的web服务和功能,但是很多地方都需要进行频繁的手工处理和庞大的代码量,这就是使用框架的
阅读全文
浙公网安备 33010602011771号