此系列我仅会记录一些 Beego 的基本使用以及常用语法,而不会对每个知识点详述,尽量做到以注释的形式让有 Web 开发经验的小伙伴一看就懂,也让自己在以后忘了某个语法或知识点的时候看到这里能迅速找回感觉~
beego 项目有专门的配置文件且需要放置于特定位置,看如下目录结构示例:
$ tree .
.
├── conf
│ ├── app.conf
│ └── mysql.conf
├── go.mod
├── main.go
如上,beego 程序的主配置文件需要放置于 main
函数所在文件同级名为 conf
的目录下,且名为 app.conf
,为便于配置切分,在 app.conf
中也可以通过 include <filename>
的方式来引用其它子配置。
下面展示上面主要文件中的内容(各配置功用和知识点已注释在对应的代码行和配置之上):
main.go
package main
import (
"fmt"
"github.com/beego/beego/v2/server/web"
)
func main() {
// 读取 conf/app.conf 中的自定义配置
httpPort, _ := web.AppConfig.Int("HTTPPort")
// 读取自定义的名为 mysql 节下的配置项,key 的格式为 `<section_name>::<key>`
mysqlHost, _ := web.AppConfig.String("mysql::MySQLHost")
mysqlPort, _ := web.AppConfig.Int("mysql::MySQLPort")
fmt.Printf("webport: %d, mysql: %s:%d\n", httpPort, mysqlHost, mysqlPort)
// 默认监听 8080 端口,可传入 <interface_ip>:<port> 修改监听地址和端口
//web.Run("127.0.0.1:9999")
// 也可在 conf/app.conf 中通过 HTTPAddr 和 HTTPPort 字段指定要监听的地址和端口
web.Run()
}
conf/app.conf
; 应用名称
AppName = 配置测试
; 可指定 dev(开发模式,会将错误信息响应到页面) 和 prod(生产模式),默认为 prod
; 未找到 RUN_MODE 环境变量时将 prod 设为 RunMode 的值
; 为 dev 模式时会重新加载下面 [dev] 节下的配置,为 prod 模式时会重新加载下面 [prod] 节下的配置
RunMode = ${RUN_MODE||prod}
; 允许拷贝原始请求报文的 body 内容到 c.Ctx.Input.RequestBody
CopyRequestBody = true
; 文件上传缓存到内存的大小,默认为 1 << 26(64M)
MaxMemory = 104857600
; 监听地址
HTTPAddr = 127.0.0.1
; 监听端口
HTTPPort = 8888
; 默认到 beego 程序的请求对应的响应头中会有一个 Server 头保存着 beego 版本信息,可通过此配置覆盖
ServerName = cc
; 默认为 true,在未设置 TplName 值时将会通过控制器名称和 Action 名称选定一个模板渲染返回
AutoRender = true
; 指定模板文件存放到的文件夹
ViewsPath = views
; 指定静态资源文件夹
StaticDir = static
include "mysql.conf"
[dev]
HTTPPort = 8088
[prod]
HTTPPort = 8010
mysql.conf
; 自定义配置节
[mysql]
MySQLHost = 192.168.9.18
MySQLPort = 8082
如上我仅列出了常用的基本配置,更多更全更详细的配置请参考官方文档:
评论区