去除调试fmt.Println

This commit is contained in:
王守虎 2019-02-15 15:02:44 +08:00
parent 17031001f0
commit f364636816
4 changed files with 10 additions and 26 deletions

View File

@ -20,7 +20,6 @@ import (
"github.com/gin-contrib/sse" "github.com/gin-contrib/sse"
"github.com/gin-gonic/gin/binding" "github.com/gin-gonic/gin/binding"
"github.com/gin-gonic/gin/render" "github.com/gin-gonic/gin/render"
"fmt"
) )
// Content-Type MIME of the most common data formats. // Content-Type MIME of the most common data formats.
@ -54,6 +53,8 @@ type Context struct {
// Keys is a key/value pair exclusively for the context of each request. // Keys is a key/value pair exclusively for the context of each request.
Keys map[string]interface{} Keys map[string]interface{}
RelativePath string
// Errors is a list of errors attached to all the handlers/middlewares who used this context. // Errors is a list of errors attached to all the handlers/middlewares who used this context.
Errors errorMsgs Errors errorMsgs
@ -635,10 +636,6 @@ func (c *Context) ShouldBindBodyWith(obj interface{}, bb binding.BindingBody) (e
// X-Real-IP and X-Forwarded-For in order to work properly with reverse-proxies such us: nginx or haproxy. // X-Real-IP and X-Forwarded-For in order to work properly with reverse-proxies such us: nginx or haproxy.
// Use X-Forwarded-For before X-Real-Ip as nginx uses X-Real-Ip with the proxy's IP. // Use X-Forwarded-For before X-Real-Ip as nginx uses X-Real-Ip with the proxy's IP.
func (c *Context) ClientIP() string { func (c *Context) ClientIP() string {
root:=c.engine.trees[0].root
fmt.Println("wsh2:",(*root.children[0]).allPath,root.indices)
fmt.Println("wsh002:",(*(root.children[1])),root.indices)
fmt.Println("wsh02:",len(root.children))
if c.engine.ForwardedByClientIP { if c.engine.ForwardedByClientIP {
clientIP := c.requestHeader("X-Forwarded-For") clientIP := c.requestHeader("X-Forwarded-For")
clientIP = strings.TrimSpace(strings.Split(clientIP, ",")[0]) clientIP = strings.TrimSpace(strings.Split(clientIP, ",")[0])

View File

@ -6,12 +6,12 @@ package gin
import ( import (
"bytes" "bytes"
"fmt"
"html/template" "html/template"
"os" "os"
"runtime" "runtime"
"strconv" "strconv"
"strings" "strings"
"fmt"
) )
const ginSupportMinGoVer = 6 const ginSupportMinGoVer = 6
@ -30,7 +30,6 @@ func debugPrintRoute(httpMethod, absolutePath string, handlers HandlersChain) {
nuHandlers := len(handlers) nuHandlers := len(handlers)
handlerName := nameOfFunction(handlers.Last()) handlerName := nameOfFunction(handlers.Last())
if DebugPrintRouteFunc == nil { if DebugPrintRouteFunc == nil {
fmt.Println("wsh1:",absolutePath)
debugPrint("%-6s %-25s --> %s (%d handlers)\n", httpMethod, absolutePath, handlerName, nuHandlers) debugPrint("%-6s %-25s --> %s (%d handlers)\n", httpMethod, absolutePath, handlerName, nuHandlers)
} else { } else {
DebugPrintRouteFunc(httpMethod, absolutePath, handlerName, nuHandlers) DebugPrintRouteFunc(httpMethod, absolutePath, handlerName, nuHandlers)

6
gin.go
View File

@ -5,12 +5,12 @@
package gin package gin
import ( import (
"fmt"
"html/template" "html/template"
"net" "net"
"net/http" "net/http"
"os" "os"
"sync" "sync"
"fmt"
"github.com/gin-gonic/gin/render" "github.com/gin-gonic/gin/render"
) )
@ -376,11 +376,11 @@ func (engine *Engine) handleHTTPRequest(c *Context) {
} }
root := t[i].root root := t[i].root
// Find route in tree // Find route in tree
handlers, params, tsr,_ := root.getValue(path, c.Params, unescape) handlers, params, tsr,relativePath := root.getValue(path, c.Params, unescape)
if handlers != nil { if handlers != nil {
c.handlers = handlers c.handlers = handlers
c.Params = params c.Params = params
fmt.Println("params:",params) c.RelativePath=relativePath
c.Next() c.Next()
c.writermem.WriteHeaderNow() c.writermem.WriteHeaderNow()
return return

20
tree.go
View File

@ -8,7 +8,6 @@ import (
"net/url" "net/url"
"strings" "strings"
"unicode" "unicode"
"fmt"
) )
// Param is a single URL parameter, consisting of a key and a value. // Param is a single URL parameter, consisting of a key and a value.
@ -125,7 +124,6 @@ func (n *node) incrementChildPrio(pos int) int {
// addRoute adds a node with the given handle to the path. // addRoute adds a node with the given handle to the path.
// Not concurrency-safe! // Not concurrency-safe!
func (n *node) addRoute(path string, handlers HandlersChain) { func (n *node) addRoute(path string, handlers HandlersChain) {
fmt.Println("wsh66:",path)
fullPath := path fullPath := path
n.priority++ n.priority++
numParams := countParams(path) numParams := countParams(path)
@ -368,7 +366,6 @@ func (n *node) insertChild(numParams uint8, path string, fullPath string, handle
} }
// insert remaining path part and handle to the leaf // insert remaining path part and handle to the leaf
fmt.Println("wsh21:",path[offset:])
n.path = path[offset:] n.path = path[offset:]
n.handlers = handlers n.handlers = handlers
} }
@ -378,11 +375,7 @@ func (n *node) insertChild(numParams uint8, path string, fullPath string, handle
// If no handle can be found, a TSR (trailing slash redirect) recommendation is // If no handle can be found, a TSR (trailing slash redirect) recommendation is
// made if a handle exists with an extra (without the) trailing slash for the // made if a handle exists with an extra (without the) trailing slash for the
// given path. // given path.
func (n *node) getValue(path string, po Params, unescape bool) (handlers HandlersChain, p Params, tsr bool,regPath string) { func (n *node) getValue(path string, po Params, unescape bool) (handlers HandlersChain, p Params, tsr bool,relativePath string) {
regPath=""
defer func() {
fmt.Println("tsr:",tsr,"regpath:",regPath)
}()
p = po p = po
walk: // Outer loop for walking the tree walk: // Outer loop for walking the tree
for { for {
@ -397,8 +390,7 @@ walk: // Outer loop for walking the tree
for i := 0; i < len(n.indices); i++ { for i := 0; i < len(n.indices); i++ {
if c == n.indices[i] { if c == n.indices[i] {
n = n.children[i] n = n.children[i]
regPath+=n.path relativePath+=n.path
fmt.Println("path4:",n.path,regPath)
continue walk continue walk
} }
} }
@ -430,8 +422,7 @@ walk: // Outer loop for walking the tree
val := path[:end] val := path[:end]
regPath+=n.path relativePath+=n.path
fmt.Println("path6:",n.path,regPath)
if unescape { if unescape {
var err error var err error
if p[i].Value, err = url.QueryUnescape(val); err != nil { if p[i].Value, err = url.QueryUnescape(val); err != nil {
@ -475,7 +466,6 @@ walk: // Outer loop for walking the tree
i := len(p) i := len(p)
p = p[:i+1] // expand slice within preallocated capacity p = p[:i+1] // expand slice within preallocated capacity
p[i].Key = n.path[2:] p[i].Key = n.path[2:]
fmt.Println("path5:",n.path,n.allPath)
if unescape { if unescape {
var err error var err error
if p[i].Value, err = url.QueryUnescape(path); err != nil { if p[i].Value, err = url.QueryUnescape(path); err != nil {
@ -493,8 +483,7 @@ walk: // Outer loop for walking the tree
} }
} }
} else if path == n.path { } else if path == n.path {
fmt.Println("path2:",n.path) relativePath+=n.path
regPath+=n.path
// We should have reached the node containing the handle. // We should have reached the node containing the handle.
// Check if this node has a handle registered. // Check if this node has a handle registered.
if handlers = n.handlers; handlers != nil { if handlers = n.handlers; handlers != nil {
@ -510,7 +499,6 @@ walk: // Outer loop for walking the tree
// trailing slash exists for trailing slash recommendation // trailing slash exists for trailing slash recommendation
for i := 0; i < len(n.indices); i++ { for i := 0; i < len(n.indices); i++ {
if n.indices[i] == '/' { if n.indices[i] == '/' {
fmt.Println("path3:",n.children[i].path)
n = n.children[i] n = n.children[i]
tsr = (len(n.path) == 1 && n.handlers != nil) || tsr = (len(n.path) == 1 && n.handlers != nil) ||
(n.nType == catchAll && n.children[0].handlers != nil) (n.nType == catchAll && n.children[0].handlers != nil)