Prisma P1001 error 해결
nestjs 에서 prisma를 통해 mysql을 연결하려고 했던 상황. 상기 에러 P1001 에러가 계속 떠서 몇시간 동안 잡고있었다. 뭐 다른 문제가 있는 경우도 있을 수 있다. 하지만 나의 문제는 정말 어이없게도 간단했는데 뭔가 mysql이 여러개 실행중이었던 것 같기도하다. killall mysqld mysqld_safe 하고 다시 시작하니 해결... ;;
nestjs 에서 prisma를 통해 mysql을 연결하려고 했던 상황. 상기 에러 P1001 에러가 계속 떠서 몇시간 동안 잡고있었다. 뭐 다른 문제가 있는 경우도 있을 수 있다. 하지만 나의 문제는 정말 어이없게도 간단했는데 뭔가 mysql이 여러개 실행중이었던 것 같기도하다. killall mysqld mysqld_safe 하고 다시 시작하니 해결... ;;
Provider 흠 Provider는 NestJS의 기본개념이다. Service, Repository, factory, helper등이 프로바이더가 될 수 있다. Provider의 주요 아이디어는 종속성으로 주입할 수 있다는 것. 객체는 서로 다양한 관계를 만들 수 있으며, 객체의 인스턴스를 연결하는 기능은 Nest런타임 시스템이 담당한다. 정확히 먼말이지는 모르겠다. 컨트롤러에서 많은 것을 필요로 하는데, 컨트롤러 안에 다 구현할 수 없으니 기능별로 쪼개서 만들고, 컨트롤러에서 쓸 수 있게 넣어주는 것(주입).?.? Service 서비스는 소프트웨어 개발 컨셉, NestJS만의 것이 아니다. @Injectable 데코레이터로 감싸져서 모듈에 제공, 이 서비스 인스턴스는 애플리케이션 전체에서 사용. 싱..
Service Service에서는 데이터베이스 관련 로직을 처리해준다. 데이터베이스에서 데이터를 가져오거나 생성한 데이터를 넣어주거나. Service 만들기 $ nest g service boards --no-spec service파일에는 Injectable 데코레이터가 있다. 이는 다른 컴포넌트에서 이 서비스를 사용할 수 있게(Injectable) 만들어준다. Controller에서 Service를 사용하기 위해서는 Dependency Injection (종속성 주입)을 해주어야한다. 이 부분은 사알짝 복잡하다. boardsController에서 boardsService를 사용하게 해주는 과정인데, 원래는 윗 부분 코드로 클래스를 만들어야한다. 원래는. 하지만 아랫부분처럼 간단하게 가능하다. 윗 부분부..
Controller 컨트롤러는 들어오는 요청을 처리하고 response를 반환한다. @Controller 사용 Handler @Get / @Post / @Patch / @Delete 등 http methods를 처리해준다. Controller의 생성 $ nest g controller boards --no-spec 원래 자동으로 test하는 부분도 생성해주는데 --no-spec 넣어주면 test 부분은 생성해주지 않는다. nestcli는 boards폴더를 먼저 찾고 이 안에 controller파일을 생성해준다. cf) https://youtu.be/3JminDpCJNE?si=2xdKTSiv3BAccfPb
하나의 기능들은 하나의 module에 넣어서 관리한다. @module 모듈은 singleton으로 관리를 해서 하나의 인스턴스를 사용해 다른 모듈에서 사용 가능. 모듈의 생성 NestJS에서는 명령어로 모듈 생성이 가능하다. $ nest g module boards nest : nestcli를 사용해서 g : generate 생성해라 module : module을 board : module 이름 터미널에 위 명령어 치면 아래처럼 자동으로 생성해줌. cf) https://youtu.be/3JminDpCJNE?si=2xdKTSiv3BAccfPb
NestJS 시작하기 $ npm i -g @nestjs/cli $ nest new project-name 파일 설명 eslintrc.js => 개발자들이 통일 된 코드 규칙으로 깔끔하게 짜도록 도와주는 라이브러리. ( 문법 오류 등) prettierrc => 코드 포맷터. 코드 형식 맞춰줌. ( 따옴표 " ' indent크기) src/main.ts 에서 시작한다. AppModule이 가장 시작이 되는 모듈. 브라우저에 Hello world! 출력되는 과정 터미널에 $ npm run start:dev 입력하고 브라우저에 localhost:3000을 치면 Hello world가 출력된다. 과정을 살펴보자. main.ts에서 NestFactory.create을 통해 AppModule을 생성한다. app.mo..
자동로그인 기능 문제 해결 - 자동로그인 기능의 핵심인 로그인 정보 저장하는데 문제가 있었다. 이전에는 작동했는데 왜 지금은 작동하지 않는지 생각해보았다. 그러다, Api response를 받을 때 바로 UserData 타입으로 변경되도록 수정한부분을 발견하였다. Getstorage에 저장할때 json 형태가 아니면 저장이 안되는데 usersata타입으로 계속 시도하니까 안되었던 것. 일단은 json으로 바꿔서 저장하게 하여서 해결.