nest.js
-
[AWS S3, Nest.js] Nest.js에서 file S3에 저장하기Back-end 2022. 1. 24. 21:07
안녕하세요! 오늘은 Nest.js에서 AWS S3에 파일을 업로드 하는 법을 포스팅하려 합니다! 우선 Nest.js에서 파일을 핸들하기 위한 controller가 필요합니다. 우선 nest명령어를 통해 uploads라는 모듈을 만들어봅니다. nest g mo uploads 그리고 모듈이 만들어지면 uploads.controller.ts라는 컨트롤러를 생성해줍니다. https://docs.nestjs.com/techniques/file-upload Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It..
-
[TypeORM, Nest.js] ManyToOne 관계의 entity가 null return 될 때에러와 마주할 때 2021. 12. 26. 19:23
안녕하세요. 오늘은 서비스 개발 중 @ManyToOne 관계의 엔티티가 정상적으로 출력되지 않고, null로 리턴되는 경우를 만났습니다. 우선 출력하고자 하는 것은 한 가지의 부모 엔티티를 가지는 자식 엔티티입니다. 즉 ManyToOne의 관계를 가지고 있죠. 거기에서 부모 엔티티의 관계를 가져올려 하는데 null이 리턴되는 경우였습니다. 문제는 간단히 해결했습니다. 바로, 해당 데이터베이스 find등의 작업 시, relation을 설정해줘야 하는 것이였죠. nest.js의 service.ts의 코드입니다. provideImage가 부모 엔티티인 user를 가져와야 하는데 null을 리턴하고 있었습니다. 부모 엔티티를 가져오기 위해선 이 findOne이라는 데이터베이스와의 통신을 위해 relation을 ..
-
[Nest.js, Guard, Save request] Guard를 활용한 엔드포인트 보호Back-end 2021. 12. 13. 15:55
안녕하세요! 오늘은 프로젝트에서 허용되지 않은 접근에 대한 자원 request를 막을 수 있는 nest.js guard에 대해서 알아보도록 하겠습니다! 로그인을 한 유저만 엔드포인트에서 자원을 요청할 수 있는 작업을 해야할 때 우리는 이 nest.js의 guard를 사용할 수 있습니다. 미들웨어로도 처리해도 충분하지 않나요? 가드와 미들웨어의 차이는 실행 시기에 있습니다. 우선 미들웨어는 next() 함수를 호출한 후 어떠한 핸들러가 실행될 지 알 수 없습니다. 반면 가드는 ExecutionContext 인스턴스에 액세스할 수 있으므로 다음에 실행될 작업을 정확히 알고 있습니다. request와 response의 정확한 지점에 우리는 이 Guard를 삽입하여, 요청에 대한 거부, 혹은 승인을 할 수 있는..
-
[Nest.js, TypeORM] RepositoryNotFoundError에러와 마주할 때 2021. 12. 11. 20:06
Nest.js 환경에서 서비스 개발 도중 만난 에러입니다. 새로운 모듈에서 데이터베이스 Entity를 생성하던 도중 에러가 발생하였는데, 결론부터 말하자면 app.module.ts에 존재하는 TypeOrmModule에 엔티티를 inject하지 않아서 발생한 에러였습니다. 에러 내용을 살펴보면, 현재 ImageContainer Entitiy가 등록되지 않은 것 같다는 에러를 보입니다. TypeORM은 app.modules.ts의 루트 모듈에 엔티티를 등록을 해줘야하는데 이 것을 하지 않아 발생하는 에러였습니다. TypeOrmModule.forRoot({ type: 'postgres', host: process.env.DB_HOST, port: +process.env.DB_PORT, username: pro..
-
[Nest.js] TypeORM 사용기Back-end 2021. 12. 9. 23:43
i새로운 서비스(더 좋은 사람들 save earth) 를 기획하고 백 엔드를 Nest.js + graphql server + postgres DB 로 스택을 정하고 빌드를 시작했습니다. typescript를 더욱 강력하기 사용하기위해 TypeORM 라이브러리를 사용하기로 하였고, 간단한 세팅을 포스팅으로 남길려고 합니다. TypeORM은 우리의 백엔드에서 SQL문을 직접 작성하지 않아도, 데이터베이스와의 통신을 간편하게 해결해주는 라이브러리입니다. 이와 비슷한 라이브러리인 sequelize도 있습니다. 이 두 라이브러리는 코드를 통해 데이터베이스와 통신하고 상호작용합니다. 타입스크립트 코드로써 데이터베이스에 POST, GET등의 처리를 해결하는데 도움을 주는 라이브러리입니다. TypeORM은 Node.j..