08:08 입실
nest.js 공식문서 나머지 읽기
API 문서 작성해보기
--save는 package.json에 디펜던시에 추가해서 애플리케이션 실행에 필요한 모듈임을 명시.
근데 npm 버전 5부터는 기본값이라고 함.
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost/test', {
connectionName: 'cats',
}),
MongooseModule.forRoot('mongodb://localhost/users', {
connectionName: 'users',
}),
],
})
export class AppModule {}
클래스가 특정 인터페이스 또는 인터페이스의 조합을 구현하도록 강제
interface IUserRepository {
findById(id: string): Promise<User>;
save(user: User): Promise<void>;
}
class UserRepository implements IUserRepository {
findById(id: string): Promise<User> {
// 구현
}
save(user: User): Promise<void> {
// 구현
}
}
@nestjs/swagger에서 import해야 스웨거 자동화에 반영됨.
import { IsOptional, IsString } from 'class-validator';
import { CreateUserDto } from './create-user.dto';
import { PickType } from '@nestjs/swagger';
export class UpdateUserDto extends PickType(CreateUserDto, [
'password',
] as const) {
@IsString()
@IsOptional()
nickname?: string;
}
인증 전략은 크게 3가지가 있음.
JWT (JSON Web Token) 전략: JWT를 이용한 인증.
OAuth 전략: Google, Facebook 등의 OAuth 서비스를 이용한 인증.
로컬(Local) 전략: 사용자 이름과 비밀번호를 이용한 인증.
nest 교훈
의존성 주입 시 모듈에 반드시 providers에 명시해야 됨.
import는 모듈을 import하는 거고 providers는 service, strategy, guard, helper를 주입하는 것