gorose orm+dotweb框架快速构建go web网站实战(三)

构建入口main主文件

简洁之道

为了尽可能的凝练, 我们在入口中, 只需要加载核心组件即可

package main

import (
    // 引入项目的路由
    "github.com/gohouse/kuaixinwen/router"
    // 引入驱动
    . "github.com/gohouse/kuaixinwen/bootstrap"
    // fmt包
    "fmt"
)

func main()  {
    fmt.Println("start...,port:8888, visit: http://localhost:8888")

    // 加载数据库
    defer DB.Close()

    // 加载路由
    router.Run(App.HttpServer)

    // 启动web服务
    err := App.StartServer(8888)

    if err!=nil{
        fmt.Println(err)
    }
}

到这里, main.go 文件已经全部完成, 文中有对应的注释, 另外, 一些对象, 我们需要对他做一些说明:

main 函数的 DBApp
这两个是 bootstrap 驱动之后的gorose和dotweb对象, 具体如下所示

main 包中引入的 bootstrap 目录如下说明

  • /bootstrap/bootRouter.go 文件

    这个是路由驱动, 网站的所有请求驱动, 都是由他来完成
    内容非常简单:

    package bootstrap
    
    import (
        "github.com/devfeel/dotweb"
    )
    
    var App *dotweb.DotWeb
    
    func init() {
        //init DotApp
        App = dotweb.New()
        //set log path
        App.SetLogPath("../log")
    
    }
  • /bootstrap/bootDatabase.go 文件

    在这里统一加载数据库配置和驱动, 如需变动数据库相关信息, 只需要维护这一个驱动即可
    内容非常简单:

    package bootstrap
    
    import (
        // 引入gorose
        "github.com/gohouse/gorose"
        // 引入数据库配置
        "github.com/gohouse/kuaixinwen/config"
        // 引入mysql驱动, 这里选择对应的数据库驱动即可
        _ "github.com/go-sql-driver/mysql"
    )
    // 数据库链接对象
    var DB gorose.Connection
    
    func init() {
        var err error
        // 装配数据库信息, 并加载database
        // config.DbConfig 为数据库配置信息
        DB,err = gorose.Open(config.DbConfig)
        if err!=nil{
            panic("数据库链接失败")
        }
        errs := DB.Ping()
        if errs!=nil{
            panic("数据库链接失败")
        }
    }
  • 对应的 /config/database.go的配置如下

    package config
    
    var DbConfig = map[string]interface{}{
        "default":         "mysql_dev", // 默认数据库配置
        "SetMaxOpenConns": 300,         // (连接池)最大打开的连接数,默认值为0表示不限制
        "SetMaxIdleConns": 10,         // (连接池)闲置的连接数, 默认-1
    
        "mysql_dev": map[string]string{// 定义名为 mysql_dev 的数据库配置
            "host": "192.168.200.248", // 数据库地址
            "username": "gcore",       // 数据库用户名
            "password": "gcore",       // 数据库密码
            "port": "3306",            // 端口
            "database": "test",        // 链接的数据库名字
            "charset": "utf8",         // 字符集
            "protocol": "tcp",         // 链接协议
            "prefix": "",              // 表前缀
            "driver": "mysql",         // 数据库驱动(mysql,sqlite,postgres,oracle,mssql)
        },
    }

到这里, 驱动全部完成

main 中引入的 路由 router 见下一节介绍


本项目源码: https://github.com/gohouse/kuaixinwen

相关推荐