github: https://github.com/awayel/Rain-for-Deno
说明
个人Deno的试水框架,模仿Spring Boot的注解和注解用法,使用TypeScript装饰器开发服务器框架。
装饰器类似于java的springMVC框架注释用法
带有@Controller装饰器的导出类,可被扫描到并装配至容器内。
部分装饰器用法受限于装饰器本身,而不同于springMVC,如@AutoWired需要传入类名,@Param需要加上参数名。 提供装饰器:Controller, GetMapping, PostMapping, Value, AutoWired, Param,Configuration,Repository。
安装说明:
- 安装依赖官网: Deno: https://deno.land/
- git clone https://github.com/awayel/Rain-for-Deno.git
- deno run --allow-net --allow-read --allow-write app.ts
import { Controller, GetMapping, PostMapping, Value, AutoWired, Param,RequestBody} from '../../rain/index.ts';
import UserService from '../service/UserService.ts'
import User from '../entity/User.ts'
@Controller("/userController")
class UserController {
@AutoWired(UserService)
private userService!: UserService;
@PostMapping("/login", "multipart/form-data")
public async login(@Param('id', 'number') id: number) {
const user = await this.userService.getInfo(id);
return {
code: 200,
message: "登录成功",
data: user
}
}
@PostMapping("/addUser","application/json")
public async addUser(@RequestBody user: User) {
const result = await this.userService.addUser(user);
return {
code: 200,
message: "登录成功",
data: result
}
}
}
export default UserController;
项目目录结构:
提供API文档功能(临时,待完善)
/rain-doc/index.html