zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Beego 的执行过程,go下载jwt,不同环境数据库连接

Go数据库下载执行连接 环境 过程 不同
2023-09-11 14:21:42 时间

执行过程

Beego整体设计架构
Beego是最经典的MVC架构,也可以前后端分离(api),我这就是前后端分离的,那么我这只有Models 和 Controllers ,因为我第一次接触框架,我就很好奇Beego框架整个运行流程,先运行什么再运行什么。
在这里插入图片描述
我看到最多的就是Beego导入每个包都会执行init,如果是struct就不执行
然后我从五分钟理解golang的init函数找到了答案
导包的时候就会执行init,有点像c语言的define(宏定义),为社么init顺序不一样呢,根据你的包顺序来,比如我先导了router包,但router包又导了其他包,就套娃,先运行最底层包的init,让我想到了下图,之前看的时候还觉得没啥,现在能体会到了
在这里插入图片描述
main中beego run后初始化都完成了
那么后续的请求过程是怎么回事呢,这就跟MVC架构有关了

我这加了jwt,有个Token过滤方法
在这里插入图片描述
再去router路由找有没有你需要的路径
在这里插入图片描述
我路由设置这块用的是注释路由,然后再跳转到Controllers,看你什么请求就会执行哪个请求中的方法,这个请求就会涉及到restful

下面是登录,我用的是POST请求,生成了jwt通过ServerJSON接口将JSON格式数据传到页面给用户token
在这里插入图片描述
在这里插入图片描述

JWT

了解JWT(json web token)看下面文章
https://www.jianshu.com/p/576dbf44b2ae

官方文档

https://jwt.io/introduction/ jwt的
https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html beegojwt的

go下载JWT

go get github.com/dgrijalva/jwt-go
go get github.com/adam-hanna/jwt-auth
输入指令后报错:go get: module github.com/dgrijalva/jwt-go: Get “https://proxy.golang.org/github.com/dgrijalva/jwt-go/@v/list”: dial tcp 172.217.160.113:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

设置环境变量换代理服务器即可
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

不同环境数据库连接

需要用到beego框架自带的配置文件
在这里插入图片描述
在这里插入图片描述