diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 437ba9bb..2f9189e2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,8 +4,8 @@ beego is an open source project.
It is the work of hundreds of contributors. We appreciate your help!
-Here are instructions to get you started. They are probably not perfect,
-please let us know if anything feels wrong or incomplete.
+Here are instructions to get you started. They are probably not perfect, please let us know if anything feels wrong or
+incomplete.
## Prepare environment
@@ -18,6 +18,7 @@ go get -u github.com/gordonklaus/ineffassign
```
Put those lines into your pre-commit githook script:
+
```shell script
goimports -w -format-only ./
@@ -33,10 +34,13 @@ Beego uses many middlewares, including MySQL, Redis, SSDB and so on.
We provide docker compose file to start all middlewares.
You can run:
+
```shell script
docker-compose -f scripts/test_docker_compose.yml up -d
```
+
Unit tests read addresses from environment, here is an example:
+
```shell script
export ORM_DRIVER=mysql
export ORM_SOURCE="beego:test@tcp(192.168.0.105:13306)/orm_test?charset=utf8"
@@ -45,34 +49,28 @@ export REDIS_ADDR="192.168.0.105:6379"
export SSDB_ADDR="192.168.0.105:8888"
```
-
## Contribution guidelines
### Pull requests
-First of all. beego follow the gitflow. So please send you pull request
-to **develop-2** branch. We will close the pull request to master branch.
+First of all. beego follow the gitflow. So please send you pull request to **develop-2** branch. We will close the pull
+request to master branch.
-We are always happy to receive pull requests, and do our best to
-review them as fast as possible. Not sure if that typo is worth a pull
-request? Do it! We will appreciate it.
+We are always happy to receive pull requests, and do our best to review them as fast as possible. Not sure if that typo
+is worth a pull request? Do it! We will appreciate it.
Don't forget to rebase your commits!
-If your pull request is not accepted on the first try, don't be
-discouraged! Sometimes we can make a mistake, please do more explaining
-for us. We will appreciate it.
+If your pull request is not accepted on the first try, don't be discouraged! Sometimes we can make a mistake, please do
+more explaining for us. We will appreciate it.
-We're trying very hard to keep beego simple and fast. We don't want it
-to do everything for everybody. This means that we might decide against
-incorporating a new feature. But we will give you some advice on how to
-do it in other way.
+We're trying very hard to keep beego simple and fast. We don't want it to do everything for everybody. This means that
+we might decide against incorporating a new feature. But we will give you some advice on how to do it in other way.
### Create issues
-Any significant improvement should be documented as [a GitHub
-issue](https://github.com/beego/beego/v2/issues) before anybody
-starts working on it.
+Any significant improvement should be documented as [a GitHub issue](https://github.com/beego/beego/v2/issues) before
+anybody starts working on it.
Also when filing an issue, make sure to answer these five questions:
@@ -84,10 +82,8 @@ Also when filing an issue, make sure to answer these five questions:
### but check existing issues and docs first!
-Please take a moment to check that an issue doesn't already exist
-documenting your bug report or improvement proposal. If it does, it
-never hurts to add a quick "+1" or "I have this problem too". This will
-help prioritize the most common problems and requests.
+Please take a moment to check that an issue doesn't already exist documenting your bug report or improvement proposal.
+If it does, it never hurts to add a quick "+1" or "I have this problem too". This will help prioritize the most common
+problems and requests.
-Also, if you don't know how to use it. please make sure you have read through
-the docs in http://beego.me/docs
+Also, if you don't know how to use it. please make sure you have read through the docs in http://beego.me/docs
diff --git a/README.md b/README.md
index d727368d..4279b232 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,7 @@ embedding.

Beego is compos of four parts:
+
1. Base modules: including log module, config module, governor module;
2. Task: is used for running timed tasks or periodic tasks;
3. Client: including ORM module, httplib module, cache module;
@@ -18,11 +19,10 @@ Beego is compos of four parts:
[Officail website](http://beego.me)
-[Example](https://github.com/beego-dev/beego-example)
+[Example](https://github.com/beego/beego-example)
> If you could not open official website, go to [beedoc](https://github.com/beego/beedoc)
-
### Web Application

@@ -73,6 +73,7 @@ Congratulations! You've just built your first **beego** app.
* Full stack for Web & API
## Modules
+
* [orm](https://github.com/beego/beedoc/tree/master/en-US/mvc/model)
* [session](https://github.com/beego/beedoc/blob/master/en-US/module/session.md)
* [logs](https://github.com/beego/beedoc/blob/master/en-US/module/logs.md)
diff --git a/adapter/cache/cache_test.go b/adapter/cache/cache_test.go
index 470c0a43..f6217e1a 100644
--- a/adapter/cache/cache_test.go
+++ b/adapter/cache/cache_test.go
@@ -26,7 +26,7 @@ func TestCacheIncr(t *testing.T) {
if err != nil {
t.Error("init err")
}
- //timeoutDuration := 10 * time.Second
+ // timeoutDuration := 10 * time.Second
bm.Put("edwardhey", 0, time.Second*20)
wg := sync.WaitGroup{}
@@ -90,7 +90,7 @@ func TestCache(t *testing.T) {
t.Error("delete err")
}
- //test GetMulti
+ // test GetMulti
if err = bm.Put("astaxie", "author", timeoutDuration); err != nil {
t.Error("set Error", err)
}
@@ -157,7 +157,7 @@ func TestFileCache(t *testing.T) {
t.Error("delete err")
}
- //test string
+ // test string
if err = bm.Put("astaxie", "author", timeoutDuration); err != nil {
t.Error("set Error", err)
}
@@ -168,7 +168,7 @@ func TestFileCache(t *testing.T) {
t.Error("get err")
}
- //test GetMulti
+ // test GetMulti
if err = bm.Put("astaxie1", "author1", timeoutDuration); err != nil {
t.Error("set Error", err)
}
diff --git a/adapter/cache/redis/redis_test.go b/adapter/cache/redis/redis_test.go
index a6c0d70b..39a30e8e 100644
--- a/adapter/cache/redis/redis_test.go
+++ b/adapter/cache/redis/redis_test.go
@@ -76,7 +76,7 @@ func TestRedisCache(t *testing.T) {
t.Error("delete err")
}
- //test string
+ // test string
if err = bm.Put("astaxie", "author", timeoutDuration); err != nil {
t.Error("set Error", err)
}
@@ -88,7 +88,7 @@ func TestRedisCache(t *testing.T) {
t.Error("get err")
}
- //test GetMulti
+ // test GetMulti
if err = bm.Put("astaxie1", "author1", timeoutDuration); err != nil {
t.Error("set Error", err)
}
diff --git a/adapter/cache/ssdb/ssdb_test.go b/adapter/cache/ssdb/ssdb_test.go
index a0b736d5..98e805d1 100644
--- a/adapter/cache/ssdb/ssdb_test.go
+++ b/adapter/cache/ssdb/ssdb_test.go
@@ -26,7 +26,7 @@ func TestSsdbcacheCache(t *testing.T) {
t.Error("check err")
}
timeoutDuration := 10 * time.Second
- //timeoutDuration := -10*time.Second if timeoutDuration is negtive,it means permanent
+ // timeoutDuration := -10*time.Second if timeoutDuration is negtive,it means permanent
if err = ssdb.Put("ssdb", "ssdb", timeoutDuration); err != nil {
t.Error("set Error", err)
}
@@ -43,7 +43,7 @@ func TestSsdbcacheCache(t *testing.T) {
t.Error("get Error")
}
- //inc/dec test done
+ // inc/dec test done
if err = ssdb.Put("ssdb", "2", timeoutDuration); err != nil {
t.Error("set Error", err)
}
@@ -72,7 +72,7 @@ func TestSsdbcacheCache(t *testing.T) {
}
}
- //test string
+ // test string
if err = ssdb.Put("ssdb", "ssdb", -10*time.Second); err != nil {
t.Error("set Error", err)
}
@@ -83,7 +83,7 @@ func TestSsdbcacheCache(t *testing.T) {
t.Error("get err")
}
- //test GetMulti done
+ // test GetMulti done
if err = ssdb.Put("ssdb1", "ssdb1", -10*time.Second); err != nil {
t.Error("set Error", err)
}
diff --git a/adapter/config/xml/xml_test.go b/adapter/config/xml/xml_test.go
index 1799b067..5e43ca0f 100644
--- a/adapter/config/xml/xml_test.go
+++ b/adapter/config/xml/xml_test.go
@@ -25,7 +25,7 @@ import (
func TestXML(t *testing.T) {
var (
- //xml parse should incluce in tags
+ // xml parse should incluce in tags
xmlcontext = `
beeapi
diff --git a/adapter/controller.go b/adapter/controller.go
index 170672b4..15d813ab 100644
--- a/adapter/controller.go
+++ b/adapter/controller.go
@@ -212,7 +212,7 @@ func (c *Controller) ServeFormatted(encoding ...bool) {
// Input returns the input data map from POST or PUT request body and query string.
func (c *Controller) Input() url.Values {
- val, _ := (*web.Controller)(c).Input()
+ val, _ := (*web.Controller)(c).Input()
return val
}
diff --git a/adapter/plugins/authz/authz_test.go b/adapter/plugins/authz/authz_test.go
index cb652725..fa5410ca 100644
--- a/adapter/plugins/authz/authz_test.go
+++ b/adapter/plugins/authz/authz_test.go
@@ -19,10 +19,11 @@ import (
"net/http/httptest"
"testing"
+ "github.com/casbin/casbin"
+
beego "github.com/beego/beego/v2/adapter"
"github.com/beego/beego/v2/adapter/context"
"github.com/beego/beego/v2/adapter/plugins/auth"
- "github.com/casbin/casbin"
)
func testRequest(t *testing.T, handler *beego.ControllerRegister, user string, path string, method string, code int) {
diff --git a/client/cache/README.md b/client/cache/README.md
index fa7b5363..7e65cbbf 100644
--- a/client/cache/README.md
+++ b/client/cache/README.md
@@ -1,17 +1,15 @@
## cache
-cache is a Go cache manager. It can use many cache adapters. The repo is inspired by `database/sql` .
+cache is a Go cache manager. It can use many cache adapters. The repo is inspired by `database/sql` .
## How to install?
go get github.com/beego/beego/v2/cache
-
## What adapters are supported?
As of now this cache support memory, Memcache and Redis.
-
## How to use it?
First you must import it
@@ -24,14 +22,13 @@ Then init a Cache (example with memory adapter)
bm, err := cache.NewCache("memory", `{"interval":60}`)
-Use it like this:
-
+Use it like this:
+
bm.Put("astaxie", 1, 10 * time.Second)
bm.Get("astaxie")
bm.IsExist("astaxie")
bm.Delete("astaxie")
-
## Memory adapter
Configure memory adapter like this:
@@ -40,7 +37,6 @@ Configure memory adapter like this:
interval means the gc time. The cache will check at each time interval, whether item has expired.
-
## Memcache adapter
Memcache adapter use the [gomemcache](http://github.com/bradfitz/gomemcache) client.
@@ -49,7 +45,6 @@ Configure like this:
{"conn":"127.0.0.1:11211"}
-
## Redis adapter
Redis adapter use the [redigo](http://github.com/gomodule/redigo) client.
diff --git a/client/cache/ssdb/ssdb.go b/client/cache/ssdb/ssdb.go
index a4ec4590..93fa9feb 100644
--- a/client/cache/ssdb/ssdb.go
+++ b/client/cache/ssdb/ssdb.go
@@ -20,7 +20,7 @@ type Cache struct {
conninfo []string
}
-//NewSsdbCache creates new ssdb adapter.
+// NewSsdbCache creates new ssdb adapter.
func NewSsdbCache() cache.Cache {
return &Cache{}
}
diff --git a/client/httplib/README.md b/client/httplib/README.md
index 95c10049..90a6c505 100644
--- a/client/httplib/README.md
+++ b/client/httplib/README.md
@@ -1,9 +1,11 @@
# httplib
+
httplib is an libs help you to curl remote url.
# How to use?
## GET
+
you can use Get to crawl data.
import "github.com/beego/beego/v2/httplib"
@@ -13,8 +15,9 @@ you can use Get to crawl data.
// error
}
fmt.Println(str)
-
+
## POST
+
POST data to remote url
req := httplib.Post("http://beego.me/")
@@ -40,13 +43,12 @@ Example:
// POST
httplib.Post("http://beego.me/").SetTimeout(100 * time.Second, 30 * time.Second)
-
## Debug
If you want to debug the request info, set the debug on
httplib.Get("http://beego.me/").Debug(true)
-
+
## Set HTTP Basic Auth
str, err := Get("http://beego.me/").SetBasicAuth("user", "passwd").String()
@@ -54,21 +56,21 @@ If you want to debug the request info, set the debug on
// error
}
fmt.Println(str)
-
+
## Set HTTPS
If request url is https, You can set the client support TSL:
httplib.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
-
-More info about the `tls.Config` please visit http://golang.org/pkg/crypto/tls/#Config
+
+More info about the `tls.Config` please visit http://golang.org/pkg/crypto/tls/#Config
## Set HTTP Version
some servers need to specify the protocol version of HTTP
httplib.Get("http://beego.me/").SetProtocolVersion("HTTP/1.1")
-
+
## Set Cookie
some http request need setcookie. So set it like this:
@@ -91,7 +93,6 @@ httplib support mutil file upload, use `req.PostFile()`
}
fmt.Println(str)
-
See godoc for further documentation and examples.
* [godoc.org/github.com/beego/beego/v2/httplib](https://godoc.org/github.com/beego/beego/v2/httplib)
diff --git a/client/httplib/filter/opentracing/filter.go b/client/httplib/filter/opentracing/filter.go
index 88d798bc..cde50261 100644
--- a/client/httplib/filter/opentracing/filter.go
+++ b/client/httplib/filter/opentracing/filter.go
@@ -18,10 +18,11 @@ import (
"context"
"net/http"
- "github.com/beego/beego/v2/client/httplib"
logKit "github.com/go-kit/kit/log"
opentracingKit "github.com/go-kit/kit/tracing/opentracing"
"github.com/opentracing/opentracing-go"
+
+ "github.com/beego/beego/v2/client/httplib"
)
type FilterChainBuilder struct {
diff --git a/client/httplib/httplib_test.go b/client/httplib/httplib_test.go
index 88935715..d0f826cb 100644
--- a/client/httplib/httplib_test.go
+++ b/client/httplib/httplib_test.go
@@ -101,7 +101,7 @@ func TestSimplePost(t *testing.T) {
}
}
-//func TestPostFile(t *testing.T) {
+// func TestPostFile(t *testing.T) {
// v := "smallfish"
// req := Post("http://httpbin.org/post")
// req.Debug(true)
@@ -118,7 +118,7 @@ func TestSimplePost(t *testing.T) {
// if n == -1 {
// t.Fatal(v + " not found in post")
// }
-//}
+// }
func TestSimplePut(t *testing.T) {
str, err := Put("http://httpbin.org/put").String()
diff --git a/client/orm/db.go b/client/orm/db.go
index 9af4bb80..4080f292 100644
--- a/client/orm/db.go
+++ b/client/orm/db.go
@@ -524,7 +524,7 @@ func (d *dbBase) InsertOrUpdate(q dbQuerier, mi *modelInfo, ind reflect.Value, a
return 0, fmt.Errorf("`%s` nonsupport InsertOrUpdate in beego", a.DriverName)
}
- //Get on the key-value pairs
+ // Get on the key-value pairs
for _, v := range args {
kv := strings.Split(v, "=")
if len(kv) == 2 {
@@ -559,7 +559,7 @@ func (d *dbBase) InsertOrUpdate(q dbQuerier, mi *modelInfo, ind reflect.Value, a
updates[i] = v + "=" + valueStr
case DRPostgres:
if conflitValue != nil {
- //postgres ON CONFLICT DO UPDATE SET can`t use colu=colu+values
+ // postgres ON CONFLICT DO UPDATE SET can`t use colu=colu+values
updates[i] = fmt.Sprintf("%s=(select %s from %s where %s = ? )", v, valueStr, mi.table, args0)
updateValues = append(updateValues, conflitValue)
} else {
@@ -584,7 +584,7 @@ func (d *dbBase) InsertOrUpdate(q dbQuerier, mi *modelInfo, ind reflect.Value, a
if isMulti {
qmarks = strings.Repeat(qmarks+"), (", multi-1) + qmarks
}
- //conflitValue maybe is a int,can`t use fmt.Sprintf
+ // conflitValue maybe is a int,can`t use fmt.Sprintf
query := fmt.Sprintf("INSERT INTO %s%s%s (%s%s%s) VALUES (%s) %s "+qupdates, Q, mi.table, Q, Q, columns, Q, qmarks, iouStr)
d.ins.ReplaceMarks(&query)
diff --git a/client/orm/db_mysql.go b/client/orm/db_mysql.go
index f674ab2b..ee68baf7 100644
--- a/client/orm/db_mysql.go
+++ b/client/orm/db_mysql.go
@@ -111,7 +111,7 @@ func (d *dbBaseMysql) InsertOrUpdate(q dbQuerier, mi *modelInfo, ind reflect.Val
iouStr = "ON DUPLICATE KEY UPDATE"
- //Get on the key-value pairs
+ // Get on the key-value pairs
for _, v := range args {
kv := strings.Split(v, "=")
if len(kv) == 2 {
@@ -155,7 +155,7 @@ func (d *dbBaseMysql) InsertOrUpdate(q dbQuerier, mi *modelInfo, ind reflect.Val
if isMulti {
qmarks = strings.Repeat(qmarks+"), (", multi-1) + qmarks
}
- //conflitValue maybe is a int,can`t use fmt.Sprintf
+ // conflitValue maybe is a int,can`t use fmt.Sprintf
query := fmt.Sprintf("INSERT INTO %s%s%s (%s%s%s) VALUES (%s) %s "+qupdates, Q, mi.table, Q, Q, columns, Q, qmarks, iouStr)
d.ins.ReplaceMarks(&query)
diff --git a/client/orm/db_oracle.go b/client/orm/db_oracle.go
index 00b9c750..1de440b6 100644
--- a/client/orm/db_oracle.go
+++ b/client/orm/db_oracle.go
@@ -77,7 +77,7 @@ func (d *dbBaseOracle) DbTypes() map[string]string {
return oracleTypes
}
-//ShowTablesQuery show all the tables in database
+// ShowTablesQuery show all the tables in database
func (d *dbBaseOracle) ShowTablesQuery() string {
return "SELECT TABLE_NAME FROM USER_TABLES"
}
diff --git a/client/orm/hints/db_hints.go b/client/orm/hints/db_hints.go
index 3a333815..6578a595 100644
--- a/client/orm/hints/db_hints.go
+++ b/client/orm/hints/db_hints.go
@@ -19,7 +19,7 @@ import (
)
const (
- //query level
+ // query level
KeyForceIndex = iota
KeyUseIndex
KeyIgnoreIndex
diff --git a/client/orm/migration/migration.go b/client/orm/migration/migration.go
index 9274018f..86d6f590 100644
--- a/client/orm/migration/migration.go
+++ b/client/orm/migration/migration.go
@@ -52,7 +52,7 @@ type Migrationer interface {
GetCreated() int64
}
-//Migration defines the migrations by either SQL or DDL
+// Migration defines the migrations by either SQL or DDL
type Migration struct {
sqls []string
Created string
@@ -104,7 +104,7 @@ func (m *Migration) Down() {
m.sqls = append(m.sqls, m.GetSQL())
}
-//Migrate adds the SQL to the execution list
+// Migrate adds the SQL to the execution list
func (m *Migration) Migrate(migrationType string) {
m.ModifyType = migrationType
m.sqls = append(m.sqls, m.GetSQL())
diff --git a/client/orm/models.go b/client/orm/models.go
index 19941d2e..64dfab09 100644
--- a/client/orm/models.go
+++ b/client/orm/models.go
@@ -45,7 +45,7 @@ type _modelCache struct {
done bool
}
-//NewModelCacheHandler generator of _modelCache
+// NewModelCacheHandler generator of _modelCache
func NewModelCacheHandler() *_modelCache {
return &_modelCache{
cache: make(map[string]*modelInfo),
@@ -113,7 +113,7 @@ func (mc *_modelCache) clean() {
mc.done = false
}
-//bootstrap bootstrap for models
+// bootstrap bootstrap for models
func (mc *_modelCache) bootstrap() {
mc.Lock()
defer mc.Unlock()
@@ -407,7 +407,7 @@ func (mc *_modelCache) register(prefixOrSuffixStr string, prefixOrSuffix bool, m
return
}
-//getDbDropSQL get database scheme drop sql queries
+// getDbDropSQL get database scheme drop sql queries
func (mc *_modelCache) getDbDropSQL(al *alias) (queries []string, err error) {
if len(mc.cache) == 0 {
err = errors.New("no Model found, need register your model")
@@ -422,7 +422,7 @@ func (mc *_modelCache) getDbDropSQL(al *alias) (queries []string, err error) {
return queries, nil
}
-//getDbCreateSQL get database scheme creation sql queries
+// getDbCreateSQL get database scheme creation sql queries
func (mc *_modelCache) getDbCreateSQL(al *alias) (queries []string, tableIndexes map[string][]dbIndex, err error) {
if len(mc.cache) == 0 {
err = errors.New("no Model found, need register your model")
@@ -467,9 +467,9 @@ func (mc *_modelCache) getDbCreateSQL(al *alias) (queries []string, tableIndexes
column += " " + "NOT NULL"
}
- //if fi.initial.String() != "" {
+ // if fi.initial.String() != "" {
// column += " DEFAULT " + fi.initial.String()
- //}
+ // }
// Append attribute DEFAULT
column += getColumnDefault(fi)
diff --git a/client/orm/models_info_m.go b/client/orm/models_info_m.go
index c450239c..c9a979af 100644
--- a/client/orm/models_info_m.go
+++ b/client/orm/models_info_m.go
@@ -74,7 +74,7 @@ func addModelFields(mi *modelInfo, ind reflect.Value, mName string, index []int)
} else if err != nil {
break
}
- //record current field index
+ // record current field index
fi.fieldIndex = append(fi.fieldIndex, index...)
fi.fieldIndex = append(fi.fieldIndex, i)
fi.mi = mi
diff --git a/client/orm/orm_log.go b/client/orm/orm_log.go
index d8df7e36..61addeb5 100644
--- a/client/orm/orm_log.go
+++ b/client/orm/orm_log.go
@@ -29,7 +29,7 @@ type Log struct {
*log.Logger
}
-//costomer log func
+// costomer log func
var LogFunc func(query map[string]interface{})
// NewLog set io.Writer to create a Logger.
diff --git a/client/orm/types.go b/client/orm/types.go
index 02ca4648..cb735ac8 100644
--- a/client/orm/types.go
+++ b/client/orm/types.go
@@ -95,13 +95,13 @@ type Fielder interface {
}
type TxBeginner interface {
- //self control transaction
+ // self control transaction
Begin() (TxOrmer, error)
BeginWithCtx(ctx context.Context) (TxOrmer, error)
BeginWithOpts(opts *sql.TxOptions) (TxOrmer, error)
BeginWithCtxAndOpts(ctx context.Context, opts *sql.TxOptions) (TxOrmer, error)
- //closure control transaction
+ // closure control transaction
DoTx(task func(ctx context.Context, txOrm TxOrmer) error) error
DoTxWithCtx(ctx context.Context, task func(ctx context.Context, txOrm TxOrmer) error) error
DoTxWithOpts(opts *sql.TxOptions, task func(ctx context.Context, txOrm TxOrmer) error) error
@@ -113,7 +113,7 @@ type TxCommitter interface {
Rollback() error
}
-//Data Manipulation Language
+// Data Manipulation Language
type DML interface {
// insert model data to database
// for example:
diff --git a/core/logs/README.md b/core/logs/README.md
index 5555be60..c7c82110 100644
--- a/core/logs/README.md
+++ b/core/logs/README.md
@@ -1,17 +1,15 @@
## logs
-logs is a Go logs manager. It can use many logs adapters. The repo is inspired by `database/sql` .
+logs is a Go logs manager. It can use many logs adapters. The repo is inspired by `database/sql` .
## How to install?
go get github.com/beego/beego/v2/logs
-
## What adapters are supported?
As of now this logs support console, file,smtp and conn.
-
## How to use it?
First you must import it
diff --git a/core/logs/console_test.go b/core/logs/console_test.go
index e345ba40..02bff3ec 100644
--- a/core/logs/console_test.go
+++ b/core/logs/console_test.go
@@ -58,7 +58,7 @@ func TestConsoleAsync(t *testing.T) {
log := NewLogger(100)
log.SetLogger("console")
log.Async()
- //log.Close()
+ // log.Close()
testConsoleCalls(log)
for len(log.msgChan) != 0 {
time.Sleep(1 * time.Millisecond)
diff --git a/core/logs/file_test.go b/core/logs/file_test.go
index 6612ebe6..e9a8922b 100644
--- a/core/logs/file_test.go
+++ b/core/logs/file_test.go
@@ -164,7 +164,7 @@ func TestFileDailyRotate_05(t *testing.T) {
testFileDailyRotate(t, fn1, fn2)
os.Remove(fn)
}
-func TestFileDailyRotate_06(t *testing.T) { //test file mode
+func TestFileDailyRotate_06(t *testing.T) { // test file mode
log := NewLogger(10000)
log.SetLogger("file", `{"filename":"test3.log","maxlines":4}`)
log.Debug("debug")
@@ -237,7 +237,7 @@ func TestFileHourlyRotate_05(t *testing.T) {
os.Remove(fn)
}
-func TestFileHourlyRotate_06(t *testing.T) { //test file mode
+func TestFileHourlyRotate_06(t *testing.T) { // test file mode
log := NewLogger(10000)
log.SetLogger("file", `{"filename":"test3.log", "hourly":true, "maxlines":4}`)
log.Debug("debug")
diff --git a/core/logs/logger.go b/core/logs/logger.go
index d8b334d4..77e68ea2 100644
--- a/core/logs/logger.go
+++ b/core/logs/logger.go
@@ -60,7 +60,7 @@ func formatTimeHeader(when time.Time) ([]byte, int, int) {
y, mo, d := when.Date()
h, mi, s := when.Clock()
ns := when.Nanosecond() / 1000000
- //len("2006/01/02 15:04:05.123 ")==24
+ // len("2006/01/02 15:04:05.123 ")==24
var buf [24]byte
buf[0] = y1[y/1000%10]
@@ -126,12 +126,12 @@ func initColor() {
cyan = w32Cyan
}
colorMap = map[string]string{
- //by color
+ // by color
"green": green,
"white": white,
"yellow": yellow,
"red": red,
- //by method
+ // by method
"GET": blue,
"POST": cyan,
"PUT": yellow,
diff --git a/core/utils/mail.go b/core/utils/mail.go
index 80a366ca..e685c449 100644
--- a/core/utils/mail.go
+++ b/core/utils/mail.go
@@ -188,10 +188,10 @@ func (e *Email) Attach(r io.Reader, filename string, args ...string) (a *Attachm
err = errors.New("Must specify the file type and number of parameters can not exceed at least two")
return
}
- c := args[0] //Content-Type
+ c := args[0] // Content-Type
id := ""
if len(args) > 1 {
- id = args[1] //Content-ID
+ id = args[1] // Content-ID
}
var buffer bytes.Buffer
if _, err = io.Copy(&buffer, r); err != nil {
diff --git a/core/validation/README.md b/core/validation/README.md
index db6b28e3..46d7c935 100644
--- a/core/validation/README.md
+++ b/core/validation/README.md
@@ -141,7 +141,6 @@ Struct Tag Functions:
Phone
ZipCode
-
## LICENSE
BSD License http://creativecommons.org/licenses/BSD/
diff --git a/core/validation/validation.go b/core/validation/validation.go
index 473ee73d..eb3a1042 100644
--- a/core/validation/validation.go
+++ b/core/validation/validation.go
@@ -423,7 +423,7 @@ func (v *Validation) Valid(obj interface{}) (b bool, err error) {
// Step2: If pass on step1, then reflect obj's fields
// Step3: Do the Recursively validation to all struct or struct pointer fields
func (v *Validation) RecursiveValid(objc interface{}) (bool, error) {
- //Step 1: validate obj itself firstly
+ // Step 1: validate obj itself firstly
// fails if objc is not struct
pass, err := v.Valid(objc)
if err != nil || !pass {
diff --git a/server/web/context/acceptencoder.go b/server/web/context/acceptencoder.go
index 8ed6a853..312e50de 100644
--- a/server/web/context/acceptencoder.go
+++ b/server/web/context/acceptencoder.go
@@ -65,7 +65,7 @@ type nopResetWriter struct {
}
func (n nopResetWriter) Reset(w io.Writer) {
- //do nothing
+ // do nothing
}
type acceptEncoder struct {
diff --git a/server/web/context/context.go b/server/web/context/context.go
index b28a2235..6070c996 100644
--- a/server/web/context/context.go
+++ b/server/web/context/context.go
@@ -222,7 +222,7 @@ func (r *Response) Write(p []byte) (int, error) {
// and sets `Started` to true.
func (r *Response) WriteHeader(code int) {
if r.Status > 0 {
- //prevent multiple response.WriteHeader calls
+ // prevent multiple response.WriteHeader calls
return
}
r.Status = code
diff --git a/server/web/context/output.go b/server/web/context/output.go
index 28ff2819..aba5e560 100644
--- a/server/web/context/output.go
+++ b/server/web/context/output.go
@@ -288,7 +288,7 @@ func (output *BeegoOutput) Download(file string, filename ...string) {
} else {
fName = filepath.Base(file)
}
- //https://tools.ietf.org/html/rfc6266#section-4.3
+ // https://tools.ietf.org/html/rfc6266#section-4.3
fn := url.PathEscape(fName)
if fName == fn {
fn = "filename=" + fn
diff --git a/server/web/context/param/methodparams.go b/server/web/context/param/methodparams.go
index b5ccbdd0..22ff0e43 100644
--- a/server/web/context/param/methodparams.go
+++ b/server/web/context/param/methodparams.go
@@ -5,7 +5,7 @@ import (
"strings"
)
-//MethodParam keeps param information to be auto passed to controller methods
+// MethodParam keeps param information to be auto passed to controller methods
type MethodParam struct {
name string
in paramType
diff --git a/server/web/context/param/parsers.go b/server/web/context/param/parsers.go
index 421aecf0..fb4099f5 100644
--- a/server/web/context/param/parsers.go
+++ b/server/web/context/param/parsers.go
@@ -18,7 +18,7 @@ func getParser(param *MethodParam, t reflect.Type) paramParser {
reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
return intParser{}
case reflect.Slice:
- if t.Elem().Kind() == reflect.Uint8 { //treat []byte as string
+ if t.Elem().Kind() == reflect.Uint8 { // treat []byte as string
return stringParser{}
}
if param.in == body {
diff --git a/server/web/context/param/parsers_test.go b/server/web/context/param/parsers_test.go
index 81a821f1..7d4c9661 100644
--- a/server/web/context/param/parsers_test.go
+++ b/server/web/context/param/parsers_test.go
@@ -14,40 +14,40 @@ type testDefinition struct {
func Test_Parsers(t *testing.T) {
- //ints
+ // ints
checkParser(testDefinition{"1", 1, intParser{}}, t)
checkParser(testDefinition{"-1", int64(-1), intParser{}}, t)
checkParser(testDefinition{"1", uint64(1), intParser{}}, t)
- //floats
+ // floats
checkParser(testDefinition{"1.0", float32(1.0), floatParser{}}, t)
checkParser(testDefinition{"-1.0", float64(-1.0), floatParser{}}, t)
- //strings
+ // strings
checkParser(testDefinition{"AB", "AB", stringParser{}}, t)
checkParser(testDefinition{"AB", []byte{65, 66}, stringParser{}}, t)
- //bools
+ // bools
checkParser(testDefinition{"true", true, boolParser{}}, t)
checkParser(testDefinition{"0", false, boolParser{}}, t)
- //timeParser
+ // timeParser
checkParser(testDefinition{"2017-05-30T13:54:53Z", time.Date(2017, 5, 30, 13, 54, 53, 0, time.UTC), timeParser{}}, t)
checkParser(testDefinition{"2017-05-30", time.Date(2017, 5, 30, 0, 0, 0, 0, time.UTC), timeParser{}}, t)
- //json
+ // json
checkParser(testDefinition{`{"X": 5, "Y":"Z"}`, struct {
X int
Y string
}{5, "Z"}, jsonParser{}}, t)
- //slice in query is parsed as comma delimited
+ // slice in query is parsed as comma delimited
checkParser(testDefinition{`1,2`, []int{1, 2}, sliceParser(intParser{})}, t)
- //slice in body is parsed as json
+ // slice in body is parsed as json
checkParser(testDefinition{`["a","b"]`, []string{"a", "b"}, jsonParser{}}, t, MethodParam{in: body})
- //pointers
+ // pointers
var someInt = 1
checkParser(testDefinition{`1`, &someInt, ptrParser(intParser{})}, t)
diff --git a/server/web/context/response.go b/server/web/context/response.go
index 7bd9a7e8..86b2c0b8 100644
--- a/server/web/context/response.go
+++ b/server/web/context/response.go
@@ -6,10 +6,10 @@ import (
)
const (
- //BadRequest indicates HTTP error 400
+ // BadRequest indicates HTTP error 400
BadRequest StatusCode = http.StatusBadRequest
- //NotFound indicates HTTP error 404
+ // NotFound indicates HTTP error 404
NotFound StatusCode = http.StatusNotFound
)
diff --git a/server/web/controller_test.go b/server/web/controller_test.go
index 0ecef7ca..4dd203f6 100644
--- a/server/web/controller_test.go
+++ b/server/web/controller_test.go
@@ -46,7 +46,7 @@ func TestGetInt8(t *testing.T) {
if val != 40 {
t.Errorf("TestGetInt8 expect 40,get %T,%v", val, val)
}
- //Output: int8
+ // Output: int8
}
func TestGetInt16(t *testing.T) {
diff --git a/server/web/error.go b/server/web/error.go
index 2809e993..85ae5c8c 100644
--- a/server/web/error.go
+++ b/server/web/error.go
@@ -444,13 +444,13 @@ func exception(errCode string, ctx *context.Context) {
return
}
}
- //if 50x error has been removed from errorMap
+ // if 50x error has been removed from errorMap
ctx.ResponseWriter.WriteHeader(atoi(errCode))
ctx.WriteString(errCode)
}
func executeError(err *errorInfo, ctx *context.Context, code int) {
- //make sure to log the error in the access log
+ // make sure to log the error in the access log
LogAccess(ctx, nil, code)
if err.errorType == errorTypeHandler {
@@ -460,16 +460,16 @@ func executeError(err *errorInfo, ctx *context.Context, code int) {
}
if err.errorType == errorTypeController {
ctx.Output.SetStatus(code)
- //Invoke the request handler
+ // Invoke the request handler
vc := reflect.New(err.controllerType)
execController, ok := vc.Interface().(ControllerInterface)
if !ok {
panic("controller is not ControllerInterface")
}
- //call the controller init function
+ // call the controller init function
execController.Init(ctx, err.controllerType.Name(), err.method, vc.Interface())
- //call prepare function
+ // call prepare function
execController.Prepare()
execController.URLMapping()
@@ -477,7 +477,7 @@ func executeError(err *errorInfo, ctx *context.Context, code int) {
method := vc.MethodByName(err.method)
method.Call([]reflect.Value{})
- //render template
+ // render template
if BConfig.WebConfig.AutoRender {
if err := execController.Render(); err != nil {
panic(err)
diff --git a/server/web/filter/opentracing/filter.go b/server/web/filter/opentracing/filter.go
index a6588379..641136fc 100644
--- a/server/web/filter/opentracing/filter.go
+++ b/server/web/filter/opentracing/filter.go
@@ -17,11 +17,12 @@ package opentracing
import (
"context"
- "github.com/beego/beego/v2/server/web"
- beegoCtx "github.com/beego/beego/v2/server/web/context"
logKit "github.com/go-kit/kit/log"
opentracingKit "github.com/go-kit/kit/tracing/opentracing"
"github.com/opentracing/opentracing-go"
+
+ "github.com/beego/beego/v2/server/web"
+ beegoCtx "github.com/beego/beego/v2/server/web/context"
)
// FilterChainBuilder provides an extension point that we can support more configurations if necessary
diff --git a/server/web/flash.go b/server/web/flash.go
index 55f6435d..4b6567ac 100644
--- a/server/web/flash.go
+++ b/server/web/flash.go
@@ -102,7 +102,7 @@ func ReadFromRequest(c *Controller) *FlashData {
}
}
}
- //read one time then delete it
+ // read one time then delete it
c.Ctx.SetCookie(BConfig.WebConfig.FlashName, "", -1, "/")
}
c.Data["flash"] = flash.Data
diff --git a/server/web/grace/grace.go b/server/web/grace/grace.go
index 1da1c178..0adc8654 100644
--- a/server/web/grace/grace.go
+++ b/server/web/grace/grace.go
@@ -138,7 +138,7 @@ func NewServer(addr string, handler http.Handler) (srv *Server) {
},
state: StateInit,
Network: "tcp",
- terminalChan: make(chan error), //no cache channel
+ terminalChan: make(chan error), // no cache channel
}
srv.Server = &http.Server{
Addr: addr,
diff --git a/server/web/namespace.go b/server/web/namespace.go
index 1d48f02d..4e0c3b85 100644
--- a/server/web/namespace.go
+++ b/server/web/namespace.go
@@ -189,8 +189,8 @@ func (n *Namespace) Include(cList ...ControllerInterface) *Namespace {
// Namespace add nest Namespace
// usage:
-//ns := beego.NewNamespace(“/v1”).
-//Namespace(
+// ns := beego.NewNamespace(“/v1”).
+// Namespace(
// beego.NewNamespace("/shop").
// Get("/:id", func(ctx *context.Context) {
// ctx.Output.Body([]byte("shopinfo"))
@@ -203,7 +203,7 @@ func (n *Namespace) Include(cList ...ControllerInterface) *Namespace {
// Get("/:id", func(ctx *context.Context) {
// ctx.Output.Body([]byte("crminfo"))
// }),
-//)
+// )
func (n *Namespace) Namespace(ns ...*Namespace) *Namespace {
for _, ni := range ns {
for k, v := range ni.handlers.routers {
diff --git a/server/web/session/README.md b/server/web/session/README.md
index 20378bc2..854fb590 100644
--- a/server/web/session/README.md
+++ b/server/web/session/README.md
@@ -1,18 +1,17 @@
session
==============
-session is a Go session manager. It can use many session providers. Just like the `database/sql` and `database/sql/driver`.
+session is a Go session manager. It can use many session providers. Just like the `database/sql`
+and `database/sql/driver`.
## How to install?
go get github.com/beego/beego/v2/session
-
## What providers are supported?
As of now this session manager support memory, file, Redis and MySQL.
-
## How to use it?
First you must import it
@@ -22,46 +21,46 @@ First you must import it
)
Then in you web app init the global session manager
-
+
var globalSessions *session.Manager
* Use **memory** as provider:
- func init() {
- globalSessions, _ = session.NewManager("memory", `{"cookieName":"gosessionid","gclifetime":3600}`)
- go globalSessions.GC()
- }
+ func init() {
+ globalSessions, _ = session.NewManager("memory", `{"cookieName":"gosessionid","gclifetime":3600}`)
+ go globalSessions.GC()
+ }
* Use **file** as provider, the last param is the path where you want file to be stored:
- func init() {
- globalSessions, _ = session.NewManager("file",`{"cookieName":"gosessionid","gclifetime":3600,"ProviderConfig":"./tmp"}`)
- go globalSessions.GC()
- }
+ func init() {
+ globalSessions, _ = session.NewManager("file",`{"cookieName":"gosessionid","gclifetime":3600,"ProviderConfig":"./tmp"}`)
+ go globalSessions.GC()
+ }
* Use **Redis** as provider, the last param is the Redis conn address,poolsize,password:
- func init() {
- globalSessions, _ = session.NewManager("redis", `{"cookieName":"gosessionid","gclifetime":3600,"ProviderConfig":"127.0.0.1:6379,100,astaxie"}`)
- go globalSessions.GC()
- }
-
-* Use **MySQL** as provider, the last param is the DSN, learn more from [mysql](https://github.com/go-sql-driver/mysql#dsn-data-source-name):
+ func init() {
+ globalSessions, _ = session.NewManager("redis", `{"cookieName":"gosessionid","gclifetime":3600,"ProviderConfig":"127.0.0.1:6379,100,astaxie"}`)
+ go globalSessions.GC()
+ }
- func init() {
- globalSessions, _ = session.NewManager(
- "mysql", `{"cookieName":"gosessionid","gclifetime":3600,"ProviderConfig":"username:password@protocol(address)/dbname?param=value"}`)
- go globalSessions.GC()
- }
+* Use **MySQL** as provider, the last param is the DSN, learn more
+ from [mysql](https://github.com/go-sql-driver/mysql#dsn-data-source-name):
+
+ func init() {
+ globalSessions, _ = session.NewManager(
+ "mysql", `{"cookieName":"gosessionid","gclifetime":3600,"ProviderConfig":"username:password@protocol(address)/dbname?param=value"}`)
+ go globalSessions.GC()
+ }
* Use **Cookie** as provider:
- func init() {
- globalSessions, _ = session.NewManager(
- "cookie", `{"cookieName":"gosessionid","enableSetCookie":false,"gclifetime":3600,"ProviderConfig":"{\"cookieName\":\"gosessionid\",\"securityKey\":\"beegocookiehashkey\"}"}`)
- go globalSessions.GC()
- }
-
+ func init() {
+ globalSessions, _ = session.NewManager(
+ "cookie", `{"cookieName":"gosessionid","enableSetCookie":false,"gclifetime":3600,"ProviderConfig":"{\"cookieName\":\"gosessionid\",\"securityKey\":\"beegocookiehashkey\"}"}`)
+ go globalSessions.GC()
+ }
Finally in the handlerfunc you can use it like this
@@ -80,14 +79,13 @@ Finally in the handlerfunc you can use it like this
}
}
-
## How to write own provider?
When you develop a web app, maybe you want to write own provider because you must meet the requirements.
-Writing a provider is easy. You only need to define two struct types
-(Session and Provider), which satisfy the interface definition.
-Maybe you will find the **memory** provider is a good example.
+Writing a provider is easy. You only need to define two struct types
+(Session and Provider), which satisfy the interface definition. Maybe you will find the **memory** provider is a good
+example.
type SessionStore interface {
Set(key, value interface{}) error //set session value
@@ -108,7 +106,6 @@ Maybe you will find the **memory** provider is a good example.
SessionGC()
}
-
## LICENSE
BSD License http://creativecommons.org/licenses/BSD/
diff --git a/server/web/session/sess_mem.go b/server/web/session/sess_mem.go
index 27e24c73..b0a821ba 100644
--- a/server/web/session/sess_mem.go
+++ b/server/web/session/sess_mem.go
@@ -27,9 +27,9 @@ var mempder = &MemProvider{list: list.New(), sessions: make(map[string]*list.Ele
// MemSessionStore memory session store.
// it saved sessions in a map in memory.
type MemSessionStore struct {
- sid string //session id
- timeAccessed time.Time //last access time
- value map[interface{}]interface{} //session store
+ sid string // session id
+ timeAccessed time.Time // last access time
+ value map[interface{}]interface{} // session store
lock sync.RWMutex
}
diff --git a/server/web/session/session.go b/server/web/session/session.go
index b9eeb324..de63ed75 100644
--- a/server/web/session/session.go
+++ b/server/web/session/session.go
@@ -44,12 +44,12 @@ import (
// Store contains all data for one session process with specific id.
type Store interface {
- Set(ctx context.Context, key, value interface{}) error //set session value
- Get(ctx context.Context, key interface{}) interface{} //get session value
- Delete(ctx context.Context, key interface{}) error //delete session value
- SessionID(ctx context.Context) string //back current sessionID
+ Set(ctx context.Context, key, value interface{}) error // set session value
+ Get(ctx context.Context, key interface{}) interface{} // get session value
+ Delete(ctx context.Context, key interface{}) error // delete session value
+ SessionID(ctx context.Context) string // back current sessionID
SessionRelease(ctx context.Context, w http.ResponseWriter) // release the resource & save data to provider & return the data
- Flush(ctx context.Context) error //delete all data
+ Flush(ctx context.Context) error // delete all data
}
// Provider contains global session methods and saved SessionStores.
@@ -60,7 +60,7 @@ type Provider interface {
SessionExist(ctx context.Context, sid string) (bool, error)
SessionRegenerate(ctx context.Context, oldsid, sid string) (Store, error)
SessionDestroy(ctx context.Context, sid string) error
- SessionAll(ctx context.Context) int //get all active session
+ SessionAll(ctx context.Context) int // get all active session
SessionGC(ctx context.Context)
}
@@ -82,7 +82,7 @@ func Register(name string, provide Provider) {
provides[name] = provide
}
-//GetProvider
+// GetProvider
func GetProvider(name string) (Provider, error) {
provider, ok := provides[name]
if !ok {
@@ -308,7 +308,7 @@ func (manager *Manager) SessionRegenerateID(w http.ResponseWriter, r *http.Reque
cookie, err := r.Cookie(manager.config.CookieName)
if err != nil || cookie.Value == "" {
- //delete old cookie
+ // delete old cookie
session, err = manager.provider.SessionRead(nil, sid)
if err != nil {
return nil, err
diff --git a/server/web/staticfile.go b/server/web/staticfile.go
index 988acad5..e5d3c3ed 100644
--- a/server/web/staticfile.go
+++ b/server/web/staticfile.go
@@ -26,9 +26,10 @@ import (
"sync"
"time"
- "github.com/beego/beego/v2/core/logs"
lru "github.com/hashicorp/golang-lru"
+ "github.com/beego/beego/v2/core/logs"
+
"github.com/beego/beego/v2/server/web/context"
)
@@ -65,12 +66,12 @@ func serverStaticRouter(ctx *context.Context) {
}
ctx.Redirect(302, redirectURL)
} else {
- //serveFile will list dir
+ // serveFile will list dir
http.ServeFile(ctx.ResponseWriter, ctx.Request, filePath)
}
return
} else if fileInfo.Size() > int64(BConfig.WebConfig.StaticCacheFileSize) {
- //over size file serve with http module
+ // over size file serve with http module
http.ServeFile(ctx.ResponseWriter, ctx.Request, filePath)
return
}
@@ -102,7 +103,7 @@ type serveContentHolder struct {
data []byte
modTime time.Time
size int64
- originSize int64 //original file size:to judge file changed
+ originSize int64 // original file size:to judge file changed
encoding string
}
@@ -117,7 +118,7 @@ var (
func openFile(filePath string, fi os.FileInfo, acceptEncoding string) (bool, string, *serveContentHolder, *serveContentReader, error) {
if staticFileLruCache == nil {
- //avoid lru cache error
+ // avoid lru cache error
if BConfig.WebConfig.StaticCacheFileNum >= 1 {
staticFileLruCache, _ = lru.New(BConfig.WebConfig.StaticCacheFileNum)
} else {
diff --git a/server/web/statistics.go b/server/web/statistics.go
index a92ec3f3..3677271b 100644
--- a/server/web/statistics.go
+++ b/server/web/statistics.go
@@ -35,7 +35,7 @@ type Statistics struct {
// URLMap contains several statistics struct to log different data
type URLMap struct {
lock sync.RWMutex
- LengthLimit int //limit the urlmap's length if it's equal to 0 there's no limit
+ LengthLimit int // limit the urlmap's length if it's equal to 0 there's no limit
urlmap map[string]map[string]*Statistics
}
diff --git a/server/web/swagger/swagger.go b/server/web/swagger/swagger.go
index a55676cd..c20b31ed 100644
--- a/server/web/swagger/swagger.go
+++ b/server/web/swagger/swagger.go
@@ -106,7 +106,7 @@ type Parameter struct {
type ParameterItems struct {
Type string `json:"type,omitempty" yaml:"type,omitempty"`
Format string `json:"format,omitempty" yaml:"format,omitempty"`
- Items []*ParameterItems `json:"items,omitempty" yaml:"items,omitempty"` //Required if type is "array". Describes the type of items in the array.
+ Items []*ParameterItems `json:"items,omitempty" yaml:"items,omitempty"` // Required if type is "array". Describes the type of items in the array.
CollectionFormat string `json:"collectionFormat,omitempty" yaml:"collectionFormat,omitempty"`
Default string `json:"default,omitempty" yaml:"default,omitempty"`
}
diff --git a/server/web/template.go b/server/web/template.go
index 897c73cf..65935ca8 100644
--- a/server/web/template.go
+++ b/server/web/template.go
@@ -163,12 +163,12 @@ func AddTemplateExt(ext string) {
}
// AddViewPath adds a new path to the supported view paths.
-//Can later be used by setting a controller ViewPath to this folder
-//will panic if called after beego.Run()
+// Can later be used by setting a controller ViewPath to this folder
+// will panic if called after beego.Run()
func AddViewPath(viewPath string) error {
if beeViewPathTemplateLocked {
if _, exist := beeViewPathTemplates[viewPath]; exist {
- return nil //Ignore if viewpath already exists
+ return nil // Ignore if viewpath already exists
}
panic("Can not add new view paths after beego.Run()")
}
@@ -303,7 +303,7 @@ func _getTemplate(t0 *template.Template, root string, fs http.FileSystem, subMod
if tpl != nil {
continue
}
- //first check filename
+ // first check filename
for _, otherFile := range others {
if otherFile == m[1] {
var subMods1 [][]string
@@ -316,7 +316,7 @@ func _getTemplate(t0 *template.Template, root string, fs http.FileSystem, subMod
break
}
}
- //second check define
+ // second check define
for _, otherFile := range others {
var data []byte
fileAbsPath := filepath.Join(root, otherFile)
diff --git a/server/web/template_test.go b/server/web/template_test.go
index ecde2a6a..1d82c2e2 100644
--- a/server/web/template_test.go
+++ b/server/web/template_test.go
@@ -117,7 +117,7 @@ func TestRelativeTemplate(t *testing.T) {
assert.Nil(t, err)
dir := filepath.Join(wkdir, "_beeTmp")
- //Just add dir to known viewPaths
+ // Just add dir to known viewPaths
if err := AddViewPath(dir); err != nil {
t.Fatal(err)
}
diff --git a/server/web/tree_test.go b/server/web/tree_test.go
index 05b6c93f..3cb39c60 100644
--- a/server/web/tree_test.go
+++ b/server/web/tree_test.go
@@ -50,7 +50,7 @@ func notMatchTestInfo(pattern, url string) testInfo {
func init() {
routers = make([]testInfo, 0)
- //match example
+ // match example
routers = append(routers, matchTestInfo("/topic/?:auth:int", "/topic", nil))
routers = append(routers, matchTestInfo("/topic/?:auth:int", "/topic/123", map[string]string{":auth": "123"}))
routers = append(routers, matchTestInfo("/topic/:id/?:auth", "/topic/1", map[string]string{":id": "1"}))
@@ -91,7 +91,7 @@ func init() {
routers = append(routers, matchTestInfo("/api/projects/:pid/members/?:mid", "/api/projects/1/members", map[string]string{":pid": "1"}))
routers = append(routers, matchTestInfo("/api/projects/:pid/members/?:mid", "/api/projects/1/members/2", map[string]string{":pid": "1", ":mid": "2"}))
- //not match example
+ // not match example
// https://github.com/beego/beego/v2/issues/3865
routers = append(routers, notMatchTestInfo("/read_:id:int\\.htm", "/read_222htm"))
@@ -324,7 +324,7 @@ func TestSplitSegment(t *testing.T) {
":id([0-9]+)": {true, []string{":id"}, `([0-9]+)`},
":id([0-9]+)_:name": {true, []string{":id", ":name"}, `([0-9]+)_(.+)`},
":id(.+)_cms.html": {true, []string{":id"}, `(.+)_cms.html`},
- ":id(.+)_cms\\.html": {true, []string{":id"}, `(.+)_cms\.html`},
+ ":id(.+)_cms\\.html": {true, []string{":id"}, `(.+)_cms\.html`},
"cms_:id(.+)_:page(.+).html": {true, []string{":id", ":page"}, `cms_(.+)_(.+).html`},
`:app(a|b|c)`: {true, []string{":app"}, `(a|b|c)`},
`:app\((a|b|c)\)`: {true, []string{":app"}, `(.+)\((a|b|c)\)`},