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

Posted 一只小阿大:)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Beego 的执行过程,go下载jwt,不同环境数据库连接相关的知识,希望对你有一定的参考价值。

这里写目录标题

执行过程

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框架自带的配置文件

以上是关于Beego 的执行过程,go下载jwt,不同环境数据库连接的主要内容,如果未能解决你的问题,请参考以下文章

git搭建beego运行不了

Centos安装Go环境和搭建Beego项目

Beego学习01,Centos搭建Beego环境

Go框架Beego安装并简单使用以及遇到的问题

beego及bee安装遇到的问题汇总

Centos 安装golang beego