func (ctx *Context) Method() string {
	return ctx.Request.Method
}
Method return the request method.
package context
import (
	"bytes"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"io/ioutil"
	"math"
	"net"
	"net/http"
	"net/url"
	"os"
	"path"
	"strings"
	"time"
	"github.com/GoAdminGroup/go-admin/modules/constant"
)
const abortIndex int8 = math.MaxInt8 / 2
type Context struct {
	Request   *http.Request
	Response  *http.Response
	UserValue map[string]interface{}
	index     int8
	handlers  Handlers
}
type Path struct {
	URL    string
	Method string
}
type RouterMap map[string]Router
func (r RouterMap) Get(name string) Router {
	return r[name]
}
type Router struct {
	Methods []string
	Patten  string
}
func (r Router) Method() string {
	return r.Methods[0]
}
func (r Router) GetURL(value ...string) string {
	u := r.Patten
	for i := 0; i < len(value); i += 2 {
		u = strings.ReplaceAll(u, ":__"+value[i], value[i+1])
	}
	return u
}
type NodeProcessor func(...Node)
type Node struct {
	Path     string
	Method   string
	Handlers []Handler
	Value    map[string]interface{}
}
func (ctx *Context) SetUserValue(key string, value interface{}) {
	ctx.UserValue[key] = value
}
func (ctx *Context) Path() string {
	return ctx.Request.URL.Path
}
func (ctx *Context) Abort() {
	ctx.index = abortIndex
}
func (ctx *Context) Next() {
	ctx.index++
	for s := int8(len(ctx.handlers)); ctx.index < s; ctx.index++ {
		ctx.handlers[ctx.index](ctx)
	}
}
func (ctx *Context) SetHandlers(handlers Handlers) *Context {
	ctx.handlers = handlers
	return ctx
}