댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
업무
2022.05.17 17:12
Back-End 관련 정보
조회 수 3721 댓글 0
사용법 [참고] NestJS로 배우는 백엔드 프로그래밍 https://wikidocs.net/book/7059 NestJS DOCS https://docs.nestjs.com/ package.json 1. npm i : package.json에 들어있는 패키지들을 설치함 디버그 모드실행 npm run start:dev --> http://127.0.0.1:8000/docs 접속해보면 됨 2. 환경설정 파일 가져오기 (.env) .env 파일을 Main 프로젝트 폴더 밑에 붙여넣기함 2-1. 로컬에서 작업할 경우 DB_HOSTNAME 을 변경해주고 사용함. 3. 코드 구성 src/main.tx : 예전의 app.js 같은 파일. 모든 - 모듈을 만들고, controller와 서비스를 붙인다. src/app.modue.ts : 모듈을 추가할 수 있음 [모듈 추가] 1. 설치 npm i -g @nestjs/cli 2. 모듈 추가 nest g mo laundry nest g module <모듈 이름> - app.module.ts 에 해당 모듈 생성 및 폴더 생성됨 컨트롤러 생성 : 라우팅해주는 것. 주소, 이름 연결. nest g co laundry 서비스 생성 : 실제 구현부 nest g service laundry 3. 컨트롤러에 서비스 연결 : 기계적으로 외워서 하면 됨 export class LaundryController { constructor(private laundryService: LaundryService) {} } - 채워 넣기. - 이유 고민 없이 그냥 넣으면 됨. - @Controller('laudnry') --> 가 주소가 되는 것임 4. 내용 Sample - GET 만들기 @Get 함수() { 구현 } @Post('new') : /api/laundry/new 와 같이 하위 라우팅 - 파라미터로 정보를 넘겨 받을 때 : /api/laundry/{item} @Post('item') createLaundry( @Param('item') item: string, ) - 비슷하게 Query를 넣을 수 있고, Body는 DTO를 만들어서 넣는다 dto는 다른 폴더에서 복사해서 넣으면 편함 5. @ApiTags('laundry') : 로 Tag를 묶으면 하나의 이름으로 묶임 [DB에 연결하기] * TYPEORM을 사용한다. DB를 Class 처럼 사용할 수 있게 해줌 - /src/entities 폴더안에 DB Table의 내용과 구조를 정의해 놓고 있음 1. 사용하고 싶은 Table의 내용을 import 해야함 다른 모듈의 import를 가져오면 편함 모듈에 임포트 추가 @Module({ imports: [TypeOrmModule.forFeature([User, Order])], controllers: [LaundryController], providers: [LaundryService] }) - User와 Order Table (/entities/User.js, Order.js)를 사용하고 싶은 경우 2. 서비스에 constructor 추가 constructor( @InjectRepository(User) private userRepository: Repository<User>, @InjectRepository(Order) private orderRepository: Repository<Order>, ){} 3. DTO 추가 - laundry/dto/user.gto.ts 생성 export class createUserInputDtoOrg { id: string; name: string; } PickType을 쓰면 귀찮은것 없이 쉽게 추가가능함 export class createUserInputDto extends PickType(User, [ 'id', 'pw', 'name', 'phone' ] as const) {} - (서비스) 무조건 async와 await를 해줘야 한다. async createLaundry(body: createUserInputDto) { const user = await this.userRepository.create(body); await this.userRepository.insert(user); return { success: true, } } - insert는 무조건 삽입, save는 key를 체크해서 같은게 있으면 Update async getLaundry() { const user = await this.userRepository.find(); return { success: true, result: user, }; } - Get은 더 쉬움 async getLaundry() { const user = await this.userRepository.find(); return { success: true, result: user, }; } 4. Try Catch 문 사용하기 try { } catch (error) { throw new BadGatewayException(error.message); } ----------------------------------------------------------- github에서 code review 하기 1. Git Download 받기 git clone https://github.com/cleanflylge/stylelab_nest_server.git git clone https://github.com/cleanflylge/dashboard.git 2. Branch 생성/ 체크아웃 - 브랜치명 임의 지정 : workingBranch_ungje git branch workingBranch_ungje git checkout workingBranch_ungje 3. Commit 생성 & push git commit git push origin workingBranch_ungje 4. Pull Request - Git Hub 접속 : https://github.com/cleanflylge/stylelab_nest_server - 상단의 Pull request 클릭 > New Pull request - 병합할 브랜치 : main 병합될 브랜치 : workingBranch_ungje 선택 - Create pull request 선택 5. 대상자(김슬기 선임님)는 리뷰 수행 - Commit/ 리뷰요청후 알림 메일 또는 메신저 보내기 6. 코드 병합 - Merge Pull Request 버튼 참고: https://velog.io/@eunjeong/GitHub%EC%97%90%EC%84%9C-%EC%BD%94%EB%93%9C%EB%A6%AC%EB%B7%B0%EB%A5%BC\ Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5