분류 전체보기 36

Nest.js Repository Pattern활용하기

Nest.Js 에서 Repository pattern을 활용해 봅시다. Nest에선 컨트롤러는 서비스를 바라보고 있습니다. TypeOrm을 사용하는 중이고 서비스에 비지니스 로직만 남겨두고 쿼리로직을 분리시키고 싶다면 레포지토리 패턴을 활용하면 됩니다. controller : request, response service : business repository : query logic 이런식으로 분리해서 사용하면 조금 더 구조를 체계적으로 나눌 수 있게됩니다. 적용 전 코드와 적용 후 코드를 비교하면서 보도록 하겠습니다. 종속성 주입시 레포지토리를 만들면서 Entity를 주입하고 쿼리 로직을 서비스 안에서 만들어서 DB에 저장하는 형태를 하고 있습니다. 비즈니스 로직과 쿼리 로직이 섞여있어 지저분해 보입..

ERROR [TypeOrmModule] Unable to connect to the database. Retrying /src/entity/user.entity.ts:1import { Entity, Column, PrimaryGeneratedColumn } from "typeorm";

typeorm을 활용해서 NestJs DB 연결중 생긴 에러 원인 entity를 제대로 찾지 못함 해결방법 TypeOrmMoudule.forRoot부분에 entities 경로를 구조에 맞게 잘 작성 프로젝트 폴더 구조 entities: [__dirname + '/entity/**/*.entity{.ts,.js}',], 이렇게 경로 수정 ERROR [ExceptionHandler] No repository for "EntityName" was found. Looks like this entity is not registered in current "default" connection? 수정 후 이런 에러 발생. import { Entity, Column, PrimaryGeneratedColumn } fro..

docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

원인 도커로 새 DB를 연동 중 생긴 에러 해당 포트로 이미 실행중이여서 동일 포트로 실행이 불가능. 해결방법 해당 포트로 실행중인 서버를 찾은 후 죽인 후 다시 연동. os : 윈도우 11 $ netstat -ano | findstr 3306 3306포트가 겹쳤으니 3306으로 실행중인 서버를 찾읍시다. PID가 2076입니다. 관리자 권한으로 해당 PID를 죽입니다. 그후 다시 실행해주시면 정상적으로 작동합니다.

카테고리 없음 2022.03.15

NestJs 도커로 MySql 연동하기

OS: 윈도우11 설치된 Mysql 버전을 확인해줍니다. $ mysql --version mysql Ver 8.0.28 for Win64 on x86_64 (MySQL Community Server - GPL) 저는 8.0.28 버전이 깔려있네요. Docker를 설치해 줍니다. https://www.docker.com/products/docker-desktop Docker Desktop for Mac and Windows | Docker Learn why Docker Desktop is the preferred choice for millions of developers building containerized applications. Download for Mac or Windows. www.docke..

[ReactNative]TypeScript 템플릿 프로젝트 cli 에러

RN 프로젝트를 타입스크립트로 프로젝트를 생성하려고 npx react-native init LearnType --template react-native-template-typescript 해당 명령어를 입력하면 잘 되는것 같다가 error An unexpected error occurred: "https://registry.yarnpkg.com/react-native-template-react-native-template-typescript: Not found". 이런 에러가 나는데요 rn cli 개발은 이미 커뮤니티로 넘어가서 그렇다고 합니다. npm uninstall -g react-native-cli 기존 cli는 지워주시구요 npm i -g @react-native-community/cli 커뮤니..

[ReactNative]* A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.

react native로 간단한 앱 구현을 하면서 공부하던중 패키지 네임이 중복되어 파이어베이스에 등록이 되지 않았다. (패키지 네임을 변경하는건 생각보다 쉬우나 한번에 잘 생각해서 정하는 걸 추천) 변경 후 앱을 실행했는데 위 사진과 같이 에러가 생겼다. app.json파일을 열어보자 { "name": "my_first_project", "displayName": "my_first_project" } packagename은 simpletodo로 바꾸었는데 app.json은 변경하지 않아서 생긴 에러 app.json내에 name도 맞춰주니 해결되었다. 참고링크 https://stackoverflow.com/questions/62649381/invariant-violation-main-has-not-bee..

[Flutter]GetX name route like query params

Get.toNamed('/detail/:id') // '/detail/1' Get.parameter['id'] // id == 1 Get.toNamed('/detail/?id=123&name=jiun') Get.parameter['id'] // id == 123 Get.parameter['name'] // name == jiun api통신을 할 때 query parameter로 데이터를 넘기거나 body에 넣어서 넘기는 경우가 있는데 query parameter로 넘길 경우에는 위의 형태로 넘길텐데 페이지 라우팅을 할 때 위처럼 GetX를 활용하면 조금 더 통일성 있고 깔끔한 코드를 만들 수 있을것 같다는 생각이 든다. 다음번에 해당 부분을 자세히 공부해서 포스팅을 수정할 예정.

🐳Flutter 2022.02.06

[nestjs]Error: listen EADDRINUSE: address already in use :::3306

백엔드 개발도 해보고 싶어서 nestjs로 mysql과 연동을 하던 중 생긴 문제 3306포트를 죽인 후 services.msc에서 mysql을 다시 실행해도 계속 저 문제로 도돌이표처럼 돌아왔다. 계속 해매다가 발견한 해결방법은 정말 간단했다. mysql은 3306포트를 쓰고 nestjs는 3000포트를 써야된다는것 app.module.ts에선 TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', port: 3306, username: 'root', password: '1548seaw', database: 'todo', entities: [User], synchronize: false, }), 이렇게 mysql부분 port를 3306으로 연결해주고 ma..