# 服务

  • Controller负责处理请求,逻辑处理的则交由Service来完成。在模块中声明为provides
  • Injectable()装饰器附加了元数据,声明类是可以由Nest IoC 容器管理的类。
  • 使用cli创建控制器
nest g se service_name --no-spec --flat
/* test.service.ts */
import { Injectable } from '@nestjs/common'

@Injectable()
export class TestService<T> {
  private ids: string[] = []

  create() {
    this.ids.push('id')
    return 'hello nestjs' + this.ids.join('-')
  }
}
/* test.controller.ts */
import { Controller, Get, Post } from '@nestjs/common'
import { TestService } from './test.service.ts'

@Controller('test')
export class TestController {
  constructor(private test: TestService) {} // 会自动生成填充值

  @Post()
  addTest() {
    return this.test.create()
  }
}
/* test.module.ts */
import { Module } from '@nestjs/common'
import { TestController } from './test.controller.ts'
import { TestService } from './test.service.ts'

@Module({
  controllers: [TestController],
  providers: [TestService]
})
export class TestModule {}