Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Alderaan
pan-light
提交
6b5023bd
P
pan-light
项目概览
Alderaan
/
pan-light
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pan-light
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
6b5023bd
编写于
6月 20, 2019
作者:
P
peterq
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add: server: recover middleware
上级
629cfe86
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
43 addition
and
19 deletion
+43
-19
server/artisan/web.go
server/artisan/web.go
+35
-13
server/dao/user.go
server/dao/user.go
+6
-6
server/pan-light-server.go
server/pan-light-server.go
+2
-0
未找到文件。
server/artisan/web.go
浏览文件 @
6b5023bd
package
artisan
import
"github.com/kataras/iris/context"
import
(
"errors"
"fmt"
"github.com/kataras/iris"
"github.com/kataras/iris/context"
)
func
ApiHandler
(
handler
func
(
ctx
context
.
Context
,
param
map
[
string
]
interface
{})
(
result
interface
{},
err
error
))
func
(
ctx
context
.
Context
)
{
...
...
@@ -10,18 +15,6 @@ func ApiHandler(handler func(ctx context.Context, param map[string]interface{})
err
:=
ctx
.
ReadJSON
(
&
param
)
if
err
==
nil
{
defer
func
()
{
if
err
:=
recover
();
err
!=
nil
{
if
e1
,
ok
:=
err
.
(
error
);
!
ok
{
panic
(
e1
)
}
ctx
.
JSON
(
map
[
string
]
interface
{}{
"success"
:
false
,
"message"
:
err
.
(
error
)
.
Error
(),
"code"
:
ErrorFrom
(
err
.
(
error
))
.
Code
(),
})
}
}()
result
,
err
=
handler
(
ctx
,
param
)
}
else
{
err
=
NewError
(
"decode input json error"
,
-
1
,
err
)
...
...
@@ -41,3 +34,32 @@ func ApiHandler(handler func(ctx context.Context, param map[string]interface{})
}
}
}
func
ApiRecover
(
ctx
context
.
Context
)
{
defer
func
()
{
e
:=
recover
()
if
e
!=
nil
{
// 转换为error
var
err
error
var
appErr
AppError
var
ok
bool
if
err
,
ok
=
e
.
(
error
);
!
ok
{
err
=
errors
.
New
(
fmt
.
Sprint
(
e
))
}
// 转换为 app error
if
appErr
,
ok
=
e
.
(
AppError
);
!
ok
{
ctx
.
StatusCode
(
iris
.
StatusInternalServerError
)
appErr
=
NewError
(
"internal server error"
,
500
,
err
)
}
ctx
.
JSON
(
map
[
string
]
interface
{}{
"success"
:
false
,
"message"
:
appErr
.
Error
(),
"code"
:
appErr
.
Code
(),
})
ctx
.
StopExecution
()
}
}()
ctx
.
Next
()
}
server/dao/user.go
浏览文件 @
6b5023bd
...
...
@@ -11,12 +11,12 @@ type gson = map[string]interface{}
var
UserDao
=
&
userDao
{}
type
UserModel
struct
{
Uk
string
// 百度 uk
MarkUsername
string
// 脱敏 用户名
Username
string
`json:"username,omitempty"`
// 用户名
Avatar
string
IsVip
bool
IsSuperVip
bool
Uk
string
`json:"uk" bson:"uk"`
// 百度 uk
MarkUsername
string
`json:"mark_username" bson:"mark_username"`
// 脱敏 用户名
Username
string
`json:"username
" bson:"username
,omitempty"`
// 用户名
Avatar
string
`json:"avatar" bson:"avatar"`
IsVip
bool
`json:"is_vip" bson:"is_vip"`
IsSuperVip
bool
`json:"is_super_vip" bson:"is_super_vip"`
}
type
userDao
struct
{}
...
...
server/pan-light-server.go
浏览文件 @
6b5023bd
...
...
@@ -3,6 +3,7 @@ package main
import
(
"github.com/kataras/iris"
"github.com/kataras/iris/context"
"github.com/peterq/pan-light/server/artisan"
"github.com/peterq/pan-light/server/pc-api"
"log"
)
...
...
@@ -13,6 +14,7 @@ func main() {
app
.
Get
(
"/"
,
func
(
ctx
context
.
Context
)
{
ctx
.
Write
([]
byte
(
"Hello pan-light"
))
})
app
.
Use
(
artisan
.
ApiRecover
)
pc_api
.
Init
(
app
)
app
.
Run
(
iris
.
Addr
(
"127.0.0.1:8081"
))
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录