beego小技巧两则(通过命令行自定义端口和环境|beego小技巧两则:通过命令行自定义端口和环境,url中带有中划线处理)
1,通过命令行自定义端口和环境
先用flag提取参数,如果要环境,就反向注进去,
如果是端口,就打到beego.Run函数里去。
2,在作router里的url解析时,如果URL中含有-中划线,用严格的string是不能匹配的。
需要去掉这个string限定。
package mainimport ( "flag" "fmt" _ "prismlogapi/routers" "github.com/astaxie/beego" "github.com/astaxie/beego/orm" _ "github.com/go-sql-driver/mysql" )func main() { //orm.Debug = true runmode := flag.String("runmode", "dev", "runmode:default is dev") port := flag.String("port", "9527", "port:default is 9527") flag.Parse() beego.BConfig.RunMode = *runmode fmt.Println(beego.BConfig.RunMode) fmt.Println(port) if beego.BConfig.RunMode == "dev" { beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" } dbhost := beego.AppConfig.String("dbhost") dbport := beego.AppConfig.String("dbport") dbuser := beego.AppConfig.String("dbuser") dbpassword := beego.AppConfig.String("dbpassword") db := beego.AppConfig.String("db") orm.RegisterDriver("mysql", orm.DRMySQL) conn := dbuser + ":" + dbpassword + "@tcp(" + dbhost + ":" + dbport + ")/" + db + "?charset=utf8" fmt.Println(conn) orm.RegisterDataBase("default", "mysql", conn) orm.SetMaxIdleConns("default", 1000) orm.SetMaxOpenConns("default", 2000) beego.Run(":" + *port) }
// @Title 获取特定部署的日志 // @Description 返回多条日志 // @Param id path int true "The key for staticblock" // @Success 200 {object} models.PrismLog // @router /:app/:depverion:string/:order:int/ [get] func (u *PrismLogController) GetByAppDepOrd() { app := u.GetString(":app") depverion := u.GetString(":depverion") order, _ := u.GetInt(":order") fmt.Println(app, depverion, order, "@@@@@@@@@@@@@@@") s := models.GetPrismLogByAppDepOrd(app, depverion, order) u.Data["json"] = s u.ServeJSON()
【beego小技巧两则(通过命令行自定义端口和环境|beego小技巧两则:通过命令行自定义端口和环境,url中带有中划线处理)】
推荐阅读
- 一个小故事,我的思考。
- 家乡的那条小河
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 昨夜小楼听风
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 【译】20个更有效地使用谷歌搜索的技巧
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 2019.4.18感恩日记
- 那件我们忽略的小事叫感恩