Skip to content

Hiroto-Iizuka/nest-flea-market

Repository files navigation

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

Nest framework TypeScript starter repository.

Installation

$ npm install

Running the app

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Stay in touch

License

Nest is MIT licensed.

memo

Service

  • ビジネスロジックを定義
  • Controllerから呼び出すことでユースケースを実現
    • Controllerにビジネスロジックを書いても動作はする。→責務ごとに分割することで、保守性・拡張性などが上がるので良い設計となる

Dependency Injection (DI)

  • 日本語にすると「依存性の注入」
  • 依存関係のあるオブジェクトを外部から渡す
    • 本番用とテスト用でインスタンスの切り替え
    • ログの出力先の切り替え

→ 規模が大きくなるとこれらをやるのが面倒になる → 簡単にできる仕組みをDIコンテナという

Serviceの定義

  1. classに@Injectable()デコレータをつける (@Service()でない点に注意!)
import { Injectable } from '@nestjs/common';

@Injectable()
export class UsersService {}
  1. class内にビジネスロジックを作成する
import { Injectable } from '@nestjs/common';

@Injectable()
export class UsersService {
  find(userName: number) {
    // Find user
  }
}

ControllerからServiceを利用する

  1. ModuleのprovidersにServiceを登録する
@Module({
  controllers: [UsersController],
  providers: [UsersService],
})
export class UsersModule {}
  1. ControllerのconstructorでServiceを引数に取る
@Controller('users')
export class UsersController {
  constructor(private readonly userService: UsersService) {}

  @Get(':username')
  find(@Param('username') userName: string) {
    this.userService.find(userName);
  }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published