Skip to content

Commit 2b9ce3b

Browse files
committed
fix: 侧边栏菜单默认使用md文件# title
1 parent d68448a commit 2b9ce3b

File tree

2 files changed

+125
-107
lines changed

2 files changed

+125
-107
lines changed

docs/.vuepress/locales/zh-CN.yml

Lines changed: 30 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -50,88 +50,64 @@
5050
sidebar:
5151
- text: 新手指南
5252
children:
53-
- text: 框架介绍
54-
link: /新手指南/框架介绍.md
53+
- /新手指南/框架介绍.md
5554

5655
- text: Uma与Koa
5756
link: /新手指南/Uma.md
58-
- text: 快速开始
59-
link: /新手指南/快速开始.md
57+
58+
- /新手指南/快速开始.md
6059

6160
- text: 基础功能
6261
children:
63-
- text: Uma
64-
link: /基础功能/Uma.md
62+
- /基础功能/Uma.md
6563

66-
- text: Router
67-
link: /基础功能/Router.md
64+
- /基础功能/Router.md
6865

69-
- text: Controller
70-
link: /基础功能/Controller.md
66+
- /基础功能/Controller.md
7167

72-
- text: Result
73-
link: /基础功能/Result.md
68+
- /基础功能/Result.md
7469

75-
- text: Service
76-
link: /基础功能/Service.md
70+
- /基础功能/Service.md
7771

78-
- text: Plugin
79-
link: /基础功能/Plugin.md
72+
- /基础功能/Plugin.md
8073

81-
- text: IOC
82-
link: /基础功能/IOC.md
74+
- /基础功能/IOC.md
8375

84-
- text: AOP
85-
link: /基础功能/AOP.md
76+
- /基础功能/AOP.md
8677

87-
- text: Config
88-
link: /基础功能/Config.md
78+
- /基础功能/Config.md
8979

90-
- text: Middleware
91-
link: /基础功能/Middleware.md
80+
- /基础功能/Middleware.md
9281

93-
- text: Decorator
94-
link: /基础功能/Decorator.md
82+
- /基础功能/Decorator.md
9583

96-
- text: ArgDecorator
97-
link: /other/ArgDecorator.md
84+
- /other/ArgDecorator.md
9885

9986
- text: 插件
10087
children:
101-
- text: Status
102-
link: /插件/status.md
88+
- /插件/status.md
10389

104-
- text: Static
105-
link: /插件/Static.md
90+
- /插件/Static.md
10691

107-
- text: Views
108-
link: /插件/Views.md
92+
- /插件/Views.md
10993

110-
- text: i18n
111-
link: /插件/i18n.md
94+
- /插件/i18n.md
11295

113-
- text: Logger
114-
link: /插件/Logger.md
96+
- /插件/Logger.md
11597

116-
- text: Session
117-
link: /插件/Session.md
98+
- /插件/Session.md
11899

119-
- text: Schedule
120-
link: /插件/schedule.md
100+
- /插件/schedule.md
121101

122-
- text: Dev
123-
link: /插件/dev.md
102+
- /插件/dev.md
124103

125104
- text: 其它
126105
children:
127-
- text: path
128-
link: /other/path.md
106+
- /other/path.md
129107

130-
- text: 断点调试
131-
link: /other/断点调试.md
108+
- /other/断点调试.md
132109

133-
- text: 错误处理
134-
link: /other/错误处理.md
110+
- /other/错误处理.md
135111

136112
- text: 服务端渲染
137113
children:
@@ -143,8 +119,11 @@
143119

144120
- text: 老项目升级
145121
children:
146-
- text: 渐进迁移
122+
- text: Koa升级
147123
link: /other/渐进迁移.md
148124

149125
- text: Express升级
150126
link: /other/express升级.md
127+
128+
- text: 升级V2
129+
link: https://umajs.gitee.io/v2/other/v1%E5%8D%87%E7%BA%A7.html

docs/other/ArgDecorator.md

Lines changed: 95 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# 参数校验(arg-decorator)
1+
# 内置参数装饰器(ArgDecorator)
22

3-
`Umajs` 提供了 `createArgDecorator` 可以很方便的创建参数装饰器,并且框架还提供了如下装饰器直接使用。
3+
`Umajs` 提供了 `createArgDecorator` 可以很方便的创建自定义参数装饰器,并且框架还提供了如下装饰器直接使用。
44

55
## 使用
66

@@ -24,7 +24,7 @@ saveUser(@Body.ToNumber('age') age: number){
2424
}
2525
```
2626

27-
当接口访问`localhost:port//saveUser?age=str`时,controller 方法将终止执行,并默认返回客户端提示信息
27+
当接口访问`localhost:port//saveUser?age=str`时,controller方法将终止执行,并默认返回客户端提示信息
2828

2929
```js
3030
{
@@ -33,63 +33,102 @@ saveUser(@Body.ToNumber('age') age: number){
3333
}
3434
```
3535

36-
## API
37-
38-
| 修饰器 | 使用说明 |
39-
| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
40-
| @Query(id:string) | url 参数修饰器 |
41-
| @Body(id?:string or Function or string[]) | POST 请求参数修饰器 `@Body() body:object ` or `@Body('id') id:any` or `@Body(['name','age']) user: {name:any,age:any}` |
42-
| @Require(id: string,message?:string) | url 参数修饰并做必填校验 |
43-
| @ToNumber(id: string,message?: string) | 参数修饰并类型转换为 number 类型 类型转换失败则会终止函数执行并返回提示内容 |
44-
| @ToBoolean(id: string,message?: string) | 参数修饰并类型转换布尔类型 类型转换失败则会终止函数执行并返回提示内容 |
45-
| @ToArray(id: string, split?:string ,message?: string) | 参数修饰并类型转换数组 类型转换失败则会终止函数执行并返回提示内容 |
46-
| @ToDate(id: string,message?: string) | 参数修饰并类型转换为 date 类型 类型转换失败则会终止函数执行并返回提示内容 备注:参数接受如果为数字也会按照时间强制转换为时间格式。 |
47-
| @Equals(id: string,comparison?: any) | 参数修饰并做值对比校验 |
48-
| @NotNull(id: string,message?: string) | 限制必须不为 null |
49-
| @AssertFalse(id: string,message?: string) | 限制必须为 false |
50-
| @AssertTrue(id: string,message?: string) | 限制必须为 true |
51-
| @DecimalMax(id: string,value: number,message?: string) | 限制必须为一个不大于指定值的数字 |
52-
| @DecimalMin(id: string,value: number,message?: string) | 限制必须为一个不小于指定值的数字 |
53-
| @Future(id: string,message?: string) | 限制必须是一个将来的日期 |
54-
| @Max(id: string,value: number,message?: string) | 限制必须为一个不大于指定值的数字 |
55-
| @Min(id: string,value: number,message?: string) | 限制必须为一个不小于指定值的数字 |
56-
| @Past(id: string,message?: string) | 限制必须是一个过去的日期 |
57-
| @Pattern(id: string,pattern: RegExp,message?: string) | 限制必须符合指定的正则表达式 |
58-
| @Size(id: string,max: number,min: number,message?: string) | 限制字符长度必须在 min 到 max 之间 |
59-
| @NotEmpty(id: string,message?: string) | 验证注解的元素值不为 null 且不为空(字符串长度不为 0、集合大小不为 0) |
60-
| @NotBlank(id: string,message?: string) | 验证注解的元素值不为空(不为 null、去除首位空格后长度为 0),不同于@NotEmpty@NotBlank 只应用于字符串且在比较时会去除字符串的空格 |
61-
| @Email(id: string,message?: string) | 验证注解的元素值是 Email |
62-
| @Phone(id: string,message?: string) | 验证元素值是手机号 具体格式参考`https://github.com/validatorjs/validator.js/blob/master/src/lib/isMobilePhone.js` |
63-
64-
## 自定义校验提示内容
65-
66-
框架默认修饰器提示信息可以通过配置文件`src/config/argDecorator.config.ts`进行覆盖。通过`Result`模块用户可以自定义校验失败时返回的数据格式或者方式,比如 json,或者状态码。
36+
## 校验参数装饰器
37+
38+
| <div style="width:450px">修饰器</div> | <div style="width:200px">使用说明</div> |
39+
---|---
40+
@Param(id:string) | 动态路由参数修饰
41+
@Query(id:string) | url参数修饰器
42+
@Body(id?:string or Function or string[] or class) | POST请求参数修饰器 `@Body() body:class` or `@Body('id') id:any` or `@Body(['name','age']) user: {name:any,age:any}`
43+
@Require(id: string,message?:string) | url参数修饰并做必填校验
44+
@ToNumber(id: string,message?: string) | 参数修饰并类型转换为number类型 类型转换失败则会终止函数执行并返回提示内容
45+
@ToBoolean(id: string,message?: string) |参数修饰并类型转换布尔类型 类型转换失败则会终止函数执行并返回提示内容
46+
@ToArray(id: string, split?:string ,message?: string) |参数修饰并类型转换数组 类型转换失败则会终止函数执行并返回提示内容
47+
@ToDate(id: string,message?: string) | 参数修饰并类型转换为date类型 类型转换失败则会终止函数执行并返回提示内容 备注:参数接受如果为数字也会按照时间强制转换为时间格式。
48+
@Equals(id: string,comparison?: any) | 参数修饰并做值对比校验
49+
@NotNull(id: string,message?: string) | 限制必须不为null
50+
@AssertFalse(id: string,message?: string) | 限制必须为false
51+
@AssertTrue(id: string,message?: string) | 限制必须为true
52+
@DecimalMax(id: string,value: number,message?: string) | 限制必须为一个不大于指定值的数字
53+
@DecimalMin(id: string,value: number,message?: string) | 限制必须为一个不小于指定值的数字
54+
@Future(id: string,message?: string) | 限制必须是一个将来的日期
55+
@Max(id: string,value: number,message?: string) | 限制必须为一个不大于指定值的数字
56+
@Min(id: string,value: number,message?: string) | 限制必须为一个不小于指定值的数字
57+
@Past(id: string,message?: string) | 限制必须是一个过去的日期
58+
@Pattern(id: string,pattern: RegExp,message?: string) | 限制必须符合指定的正则表达式
59+
@Size(id: string,max: number,min: number,message?: string) | 限制字符长度必须在min到max之间
60+
@NotEmpty(id: string,message?: string) | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
61+
@NotBlank(id: string,message?: string) | 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty@NotBlank只应用于字符串且在比较时会去除字符串的空格
62+
@Email(id: string,message?: string) | 验证注解的元素值是Email
63+
@Phone(id: string,message?: string) | 验证元素值是手机号 具体格式参考`https://github.com/validatorjs/validator.js/blob/master/src/lib/isMobilePhone.js`
64+
65+
## 非校验参数修饰器
66+
67+
| <div style="width:450px">修饰器</div> | 使用说明 |
68+
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
69+
| @Cookies(id:string) | cookies 参数修饰器 |
70+
| @Headers(id:string) | headers 请求头参数修饰器 |
71+
| @RequestParam(id:string) | GET/POST 通用参数修饰器,POST 请求类型时参数获取优先级为:Body < Query 相同参数 url 携带参数覆盖 body 请求体中的属性值 |
72+
| @RequestFile(field: string) | 文件上传时文件参数修饰器 |
73+
74+
## 高阶
75+
76+
### Body参数装饰器接受class类
77+
78+
> 当Body传递为class类时,会将请求参数中获取到的数据作为参数调用类构造函数,同时也会进行属性类型校验,校验成功则返回实例化对象。更多class的使用请参考[`@umajs/class-validator`](https://github.com/Umajs/class-validator)
6779
6880
```ts
69-
import { Result } from '@umajs/core'
81+
// 定义class
82+
import { Type, Required, Min, Model } from '@umajs/class-validator';
83+
export default class UserInfo extends Model {
84+
constructor({ id, name, age }: UserInfo, isValid: boolean) {
85+
super(isValid);
86+
this.id = id;
87+
this.name = name;
88+
this.age = age;
89+
}
90+
91+
@Type('number')
92+
id: number = 123;
93+
94+
@Required()
95+
name?: string;
96+
97+
@Min(0)
98+
age?: number;
99+
}
70100

71-
export default {
72-
Require: {
73-
err({ key, ctx, tip, val }) {
74-
return Result.send(tip || `请求${key} 参数不能为空。入参值为${val}`, 403)
75-
},
76-
},
77-
ToNumber: {
78-
err({ key, ctx, tip, val }) {
79-
return Result.json({
80-
code: 0,
81-
msg: tip || `请求${key} 参数必须为数字类型。入参值为${val}`,
82-
})
83-
},
84-
},
101+
// 参数装饰器使用
102+
@Path({ value: '/post', method: RequestMethod.POST })
103+
model(@Body(UserInfo) userInfo: user) {
104+
return Result.send(`This Post body info is ${JSON.stringify(userInfo)}`);
105+
106+
// >> {"code":0,"msg":{"validate":{"id":["id must be of type number."],"name":["name is required."],"age":["age must be greater than 0."]},"parms":{"id":"1","age":-10}}}
85107
}
108+
86109
```
87110

88-
## 其他参数修饰器(不具备参数校验功能)
111+
### 自定义校验提示内容
89112

90-
| 修饰器 | 使用说明 |
91-
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
92-
| @Cookies(id:string) | cookies 参数修饰器 |
93-
| @Headers(id:string) | headers 请求头参数修饰器 |
94-
| @RequestParam(id:string) | GET/POST 通用参数修饰器,POST 请求类型时参数获取优先级为:Body < Query 相同参数 url 携带参数覆盖 body 请求体中的属性值 |
95-
| @RequestFile(field: string) | 文件上传时文件参数修饰器 |
113+
框架默认修饰器提示信息可以通过配置文件`src/config/argDecorator.config.ts`进行覆盖。通过`Result`模块用户可以自定义校验失败时返回的数据格式或者方式,比如json,或者状态码。
114+
115+
```ts
116+
import { Result } from '@umajs/core';
117+
118+
export default {
119+
Require: {
120+
err({key, ctx, tip, val}) {
121+
return Result.send(tip || `请求${key} 参数不能为空。入参值为${val}`,403);
122+
},
123+
},
124+
ToNumber: {
125+
err({key, ctx, tip, val}) {
126+
return Result.json({
127+
code: 0,
128+
msg: tip || `请求${key} 参数必须为数字类型。入参值为${val}`,
129+
});
130+
},
131+
},
132+
};
133+
134+
```

0 commit comments

Comments
 (0)