请求路由映射由两部分配置决定 @Controller
和 @Method
,@Controller
路由配置拼接上 @Method
路由配置组合完整的路由映射规则。
@Controller
只有一个字符串类型的配置属性 path
,示例如下
@Controller('users')
export class UserController {
...
}
@Method
主要包含两个属性 method
和 path
, method
与 http 请求的 method 对应, path
可以是字符串,也可以是正则表达式。
我们一般不会直接用 @Method
装饰器,一般会用有它衍生出来的装饰器:
@Get
@Post
@Put
@Delete
@Patch
@Options
@Head
import { Controller, Get, Param, Delete, Put, Post, Body } from '@malagu/mvc/lib/node';
@Controller('users')
export class UserController {
@Get()
list(): Promise<User[]> {
...
}
@Get(':id')
get(@Param('id') id: number): Promise<User | undefined> {
...
}
@Delete(':id')
async reomve(@Param('id') id: number): Promise<void> {
...
}
@Put()
async modify(@Body() user: User): Promise<void> {
...
}
@Post()
create(@Body() user: User): Promise<User> {
...
}
}