일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- vue기초
- 러스트기초
- ambiguous function description
- 깃허브명령어
- 러스트 기초 학습
- Vue
- 체인의정석
- chainlink 설명
- 스마트컨트렉트테스트
- ethers
- ethers v6
- 프록시배포구조
- 스마트컨트렉트프록시
- 스마트컨트렉트 예약어 함수이름 중복
- git rebase
- 컨트렉트 동일한 함수이름 호출
- 머신러닝기초
- rust 기초
- nest.js설명
- ethers type
- SBT표준
- ethers websocket
- ethers typescript
- multicall
- 컨트렉트 배포 자동화
- 스마트 컨트렉트 함수이름 중복
- Vue.js
- 러스트 기초
- 스마트컨트렉트 함수이름 중복 호출
- nestjs 튜토리얼
Archives
- Today
- Total
체인의정석
Nest.js) 구조와 작업순서 총정리 본문
728x90
반응형
오랜 방황 끝에 결국 다음과 같이 구조를 짤 수 있었다.
├── addresses
│ ├── addresses.module.ts
│ ├── controller
│ │ ├── addresses.controller.spec.ts
│ │ └── addresses.controller.ts
│ ├── dto
│ │ ├── get-contract-command.dto.ts
│ │ └── get-contract-response.dto.ts
│ ├── entities
│ │ └── addresses.entity.ts
│ └── service
│ ├── addresses.service.spec.ts
│ └── addresses.service.ts
├── app.module.ts
├── config
│ └── configuration.ts
├── main.ts
├── routes.ts
└── transactions
├── controller
│ ├── transactions.controller.spec.ts
│ └── transactions.controller.ts
├── dto
│ ├── get-block-timestamp-command.dto.ts
│ ├── get-block-timestamp-response.dto.ts
│ ├── get-realted-transactions-command.dto.ts
│ ├── get-related-transactions-response.dto.ts
│ ├── get-value-command.dto.ts
│ └── get-value-response.dto.ts
├── entities
│ └── transactions.entity.ts
├── service
│ ├── transactions.service.spec.ts
│ └── transactions.service.ts
└── transactions.module.ts
아직 수정이 많이 필요하겠지만 이해한 구조는 다음과 같다.
nest.js 는 typeORM을 쓰는 것이 일반적이며, 타입스크립트를 쓰기 때문에 데이터의 테이블, 입력값, 출력값 등등을 모두 타입으로 지정해 주어서 안정성이 높게 만든 구조를 띈다.
1. DB, api를 설계한다.
2. 기존의 DB를 연결하거나 처음부터 db를 typeORM으로 만들면서 프로젝트의 틀을잡는다.
3. app.module.ts 에서 ConfigModule.forRoot 와 TypeOrmModule.forRoot 등을 설정해준다. 이를 통해서 데이터베이스와의 연결해주며, 이때 환경변수 설정도 해주면 더 좋다.
4. main.ts 에서 swagger등의 설정을 해준다.
5. controller에서는 라우팅을 관리한다 설계를 보고 라우팅을 해준다.
6. entities에서는 DB를 보고 그 구조를 그대로 넣어준다.
7. 입력값과 출력값을 객체의 형태로 dto에 넣어준다.
8. 위에서 만든 값들을 가지고 service에서 REST API로 CRUD를 해준다.
9. 해당 기능별로 파일을 만들고 modules.ts를 설정해준다.
10. 필요한 미들웨어는 routes.ts에서 관리한다.
그 외, test 를 jest로 진행하는 것은 이전에 한번 해보았기 때문에 상대적으로 빨리 할 수 있을거라고 기대한다.
테스트는 또한 swagger를 써서 편하게 할 수도 있다.
728x90
반응형
'개발 > backend' 카테고리의 다른 글
Nest.js) API 설계를 위한 피드백- 조회기능 (0) | 2021.10.20 |
---|---|
class-validator) 이더리움 주소, 비트코인 주소 형태 판별하기 (0) | 2021.10.19 |
Nest.js) 환경변수 설정하기 (0) | 2021.10.19 |
ERROR [ExceptionHandler] Nest can't resolve dependencies of the 해결 (0) | 2021.10.19 |
Nest.js) 정의한 entities 적용하기 service 부분 코드 수정 (0) | 2021.10.18 |
Comments