zoukankan      html  css  js  c++  java
  • dotweb框架之旅 [二]

    dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿。

    框架地址:https://github.com/devfeel/dotweb

    dotweb包含以下几个常用对象:

    • App(dotweb) App容器,为Web请求处理提供必要的容器类功能。
    • HttpServer 用于真正处理Web请求的服务模块。
    • HttpContext 用于提供单次请求处理中请求信息与响应信息的快捷处理与唯一入口。
    • Response 用于从服务器向用户发送输出的结果。
    • Request 用于从用户那里取得信息。
    • Session 用于存储关于某个连接会话的信息,或者修改相关的设置。目前支持存储本机内存与Redis分布式。

    本章开始,将对这系列对象做常用场景的介绍。

    App对象,在dotweb中定义为DotWeb,在框架中,主要承担为Web请求处理提供必要的容器类功能,比如启动Web监听、配置初始化、设置工作模式、设置日志、设置缓存等,同时也承担一系列快捷功能入口。

    主要属性:

    属性 描述 默认值
    HttpServer
    App承载的WebServer对象
    NewHttpServer()
    Config
    全局配置信息,映射dotweb.conf
    config.NewConfig()
    Middlewares
    App级别的中间件集合
    make([]Middleware, 0)
    ExceptionHandler
    自定义处理异常方法
    DefaultHTTPErrorHandler()
    NotFoundHandler
    自定义404请求处理方法
    DefaultNotFoundHandler()
    MethodNotAllowedHandler
    自定义405请求处理方法
    DefaultMethodNotAllowedHandler()
    Items
    App级别全局内存kv存储
    NewItemContext()
    OfflineServer
    维护WebServer
    NewOfflineServer()

    主要方法

    方法 描述
    Start()
     根据配置启动Web端口监听,若发生错误,返回具体error对象
    ListenAndServe(addr string)
     指定host:port,根据配置启动Web端口监听
    Use(m ...Middleware)
     注册中间件,所有请求共享
    SetDevelopmentMode()SetProductionMode()
     设置开发模式生产模式
    Cache()
     提供全局内存缓存入口
    UseRequestLog()
     启用基础请求日志中间件
    SetPProfConfig()
     设置pprof监听端口信息
    SetLogger(log logger.AppLog)
     设置自定义日志插件

    常规使用代码:

    func main() {
        //初始化App
        app := dotweb.New()
    
        //设置dotserver日志目录
        //如果不设置,默认不启用,且默认为当前目录
        app.SetEnabledLog(true)
    
        //开启development模式
        app.SetDevelopmentMode()
    
        //设置路由
        InitRoute(app.HttpServer)
    
        //自定义404输出
        app.SetNotFoundHandle(func(ctx dotweb.Context) {
            ctx.Response().Write(http.StatusNotFound, []byte("is't app's not found!"))
        })
    
        //启动 监控服务
        app.SetPProfConfig(true, 8081)
    
        //全局容器
        app.Items.Set("app", "dotweb")
    
        // 开始服务
        port := 8080
        fmt.Println("dotweb.StartServer => " + strconv.Itoa(port))
        err := app.StartServer(port)
        fmt.Println("dotweb.StartServer error => ", err)
    }

    更多代码可参考 https://github.com/devfeel/dotweb-example

    欢迎各位加入我们的go语言QQ群:193409346

  • 相关阅读:
    react redux 使用
    github 退出和别人共同开发的仓库
    在react package.json中配置代理解决跨域
    禁止浏览器sources下webpack文件 显示源码
    redux connect 装饰器配置和安装
    Odoo 在action的domain和context中使用self.env
    odoo 字段后面添加button按钮,页签tree再加group显示字段
    Odoo -- 开发者模式创建的群组、动作没有xml id怎么办
    Mac必备神器Homebrew mac下镜像飞速安装Homebrew教程
    Vue -- keyup、watch、computed、nrm的安装
  • 原文地址:https://www.cnblogs.com/pzrr/p/7668294.html
Copyright © 2011-2022 走看看