mirror of
https://gitee.com/johng/gf
synced 2026-06-06 16:21:40 +08:00
TODO--
This commit is contained in:
5
TODO.MD
5
TODO.MD
@ -44,8 +44,6 @@
|
||||
1. WebServer增加可选择的路由覆盖配置,默认情况下不覆盖;
|
||||
1. gkafka这个包比较重,未来从框架中剥离出来;
|
||||
1. grpool性能压测结果变慢的问题;
|
||||
1. 改进证书打开失败时的WebServer错误提示,前置HOOK校验后关闭后续的HOOK逻辑执行;
|
||||
1. 目前WebServer的HOOK是按照优先级执行的,需要增加覆盖特性;
|
||||
1. 增加jumplist的数据结构容器;
|
||||
1. DelayQueue/PriorityQueue;
|
||||
|
||||
@ -105,3 +103,6 @@
|
||||
1. 改进gfpool在文件指针变化时的更新;
|
||||
1. ghttp hook回调使用方式在注册路由比较多的时候,优先级可能使得开发者混乱,考虑方式便于管理;
|
||||
1. gform对于MySQL字段类型为datetime类型的时区问题分析;
|
||||
1. 改进证书打开失败时的WebServer错误提示,前置HOOK校验后关闭后续的HOOK逻辑执行;
|
||||
1. 目前WebServer的HOOK是按照优先级执行的,需要增加覆盖特性;
|
||||
|
||||
|
||||
@ -1,19 +1,38 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
func test() (err interface{}) {
|
||||
defer func() {
|
||||
err = recover()
|
||||
}()
|
||||
panic(1)
|
||||
return
|
||||
"gitee.com/johng/gf/g"
|
||||
"gitee.com/johng/gf/g/net/ghttp"
|
||||
)
|
||||
|
||||
type Test struct {
|
||||
Name string
|
||||
}
|
||||
|
||||
func Handler(r *ghttp.Request) {
|
||||
fmt.Println("==========")
|
||||
fmt.Println("/v1/*", r.Request.Method)
|
||||
if r.Request.Method == "OPTIONS" { // 临时解决方法,但并不完美。而且请求时还是会报错但返回是正常的。
|
||||
return // 注释掉这行就会跨域失败
|
||||
}
|
||||
r.Response.WriteJson(Test{Name: "hello"})
|
||||
r.Response.WriteHeader(http.StatusOK)
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
switch err := test(); err {
|
||||
default:
|
||||
fmt.Println(err)
|
||||
}
|
||||
}
|
||||
s := g.Server()
|
||||
s.BindHookHandler("/*any", ghttp.HOOK_BEFORE_SERVE, func(r *ghttp.Request) {
|
||||
fmt.Println("/*any", r.Request.Method)
|
||||
r.Response.SetAllowCrossDomainRequest("*", "PUT,GET,POST,DELETE,OPTIONS")
|
||||
r.Response.Header().Set("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, token")
|
||||
if r.Request.Method == "OPTIONS" { // 复杂请求的预处理
|
||||
r.Response.WriteHeader(202)
|
||||
}
|
||||
})
|
||||
s.Group("/v1").ALL("*", Handler, ghttp.HOOK_BEFORE_SERVE)
|
||||
s.SetPort(6789)
|
||||
s.Run()
|
||||
}
|
||||
Reference in New Issue
Block a user