1.Abstract
在学习web开发的过程中会遇到很多困难,因此写了一篇类似综述类的文章。作为路线图从web开发要素的index出发来介绍golang开发的学习流程以及Example代码。
在描述中多是使用代码来描述使用方法不会做过多的说明。最后可以方便的copy代码来实现自己的需求。
本文适应对象:
对web开发有一定经验的人 能够灵活使用ajax的人(至少懂得前后分离) golang web 开发有一定了解,至少略读过一些golang web开发的书籍看完本文之后您会收获:
golang web开发的一些技巧 golang web开发的一些实用API本文在描述的时候为了解释尽量详细,已经把解释写到代码注释中。
2.golang web 开发check list
略过的部分:基本流程控制,OOP等基础语法知识。
3.路由器
路由器是整个网站对外的灵魂,如果路由做的不好URL会非常恶心。所以这部分设计成第一个要说的内容。
路由分两种一种是手动路由为了通过tul调度固定的功能,另外一点就是资源的获取,通过url的分析来模仿静态页的方式来获取资源(类似get)
自动路由,主要使用OOP的COMMAND模式来实现。所有功能使用post,统一入口,方便权限管理,安全管理,跨域管理。但是如此强大的功能还是交给框架来做吧。这里就不给新手做参考了。
3.1手动路由
package main
import (
"log"
"net/http"
)
func main() {
RouterBinding() // 路由绑定函数
err := http.ListenAndServe(":9090", nil) //设置监听的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
在httpserver运行之前先绑定路由
3.2 手动路由的绑定
3.2.1 静态文件
http.Handle("/pages/", http.StripPrefix("/pages/", http.FileServer(http.Dir("./pages"))))
3.2.2 固定函数与资源获取
他们都是一样的
http.HandleFunc("/images/", fileUpload.DownloadPictureAction)
4.页面加载
4.1 纯静态页(HTML)
直接交给路由就行了。自动就访问那个文件夹了。不过生产环境果然还得是cdn,如果自己服务器比较多。可以nginx反向代理。









