Skip to main content

控制器

基本用法#

Controller 功能 在 TieJS 中是开箱即用的,下面我们使用 CLI 工具 tie-cli 快速体验。

使用 tie-cli 初始化应用 (选择 minimal-controller):

tie create myapp # 选择 minimal-controller
cd myapp
npm run dev

项目结构如下:

.
├── home.controller.ts
├── package.json
└── tsconfig.json

启动成功后,然后访问浏览器:http://localhost:5001

代码如下:

import { Controller, Get } from '@tiejs/controller'
@Controller()
export class HomeController {
@Get('/')
index() {
return 'Hi tie'
}
}

常用功能#

上面介绍了 TieJS 中 Controller 的最小化用法,下面例子你将体验到 Controller 的常用功能:

首先,我们新建如下的项目目录:

.
├── package.json
├── user
│   ├── createUser.input.ts
│   ├── user.resolver.ts
│   ├── user.service.ts
│   └── user.type.ts
└── tsconfig.json

项目代码如下:

import { Controller, Get, Params, Post, Body } from '@tiejs/controller'
import { User } from './user.type'
import { UserService } from './user.service'
import { CreateUserInput } from './createUser.input'
@Controller()
export class UserController {
constructor(private userService: UserService) {}
@Get('/users/:name')
async user(@Params('name') name: string): Promise<User> {
return await this.userService.getUser(name)
}
@Get('/users')
async users(): Promise<User[]> {
return await this.userService.queryUser()
}
@Post('/users')
async createUser(@Body() input: CreateUserInput): Promise<User> {
return await this.userService.createUser(input)
}
}