묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 NestJS
파일을 찾지 못하는 오류가 계속 뜹니다
Cannot find module './app.controller' or its corresponding type declarations.Cannot find module './app.service' or its corresponding type declarations.저런 내용이 아예 없는데 코드에서 저게 잘못됐다고 뜨네요....파일구조도 다 맞는것 같은데왜 계속 저런 오류가 뜨는걸까요ㅜㅜ
-
미해결따라하며 배우는 NestJS
services와 repository 파일에서 해야하는 작업
user.repository에서는 db작업을 하고 user.service에서는 cotroller와 repository 그 사이 에 무언가 작업을 해야하는걸로 생각해 왔는데 이번 강의에서 user.service에서 db조회를 하셔서 각각 파일의 역할을 잘 모르겠습니다.user.service와 user.repository 파일에서 각각 해야하는 작업이 뭔지 알고싶습니다
-
해결됨프론트 개발자를 위한 백엔드 101 (NestJS, TypeORM)
NestJS, TypeORM의 typeorm.ts에서 autoLoadEntities: true와 entities: []의 공존
안녕하세요.TypeORM 마이그레이션 실습에서 아래와 같은 typeorm.ts 파일을 작성했습니다.import { registerAs } from '@nestjs/config'; import { DataSource, DataSourceOptions } from 'typeorm'; const config = { type: 'postgres', host: `${process.env.DB_HOST || 'localhost'}`, port: parseInt(`${process.env.DB_PORT || '5432'}`, 10), username: `${process.env.DB_USERNAME || 'test'}`, password: `${process.env.DB_PASSWORD || 'test'}`, database: `${process.env.DB_DATABASE || 'inflearn'}`, entities: ['dist/**/**/*.entity{.ts,.js}'], migrations: ['dist/migrations/*{.ts,.js}'], autoLoadEntities: true, synchronize: false, }; export default registerAs('typeorm', () => config); export const connectionSource = new DataSource(config as DataSourceOptions); 이 때, autoLoadEntities: true 항목이 있음에도, entities: [] 항목이 있어야 할 필요가 있나요? 없어도 코드 동작에 차이가 없는 것인가요?앞선 강의에서 autoLoadEntities: true 인 경우, entities: []를 따로 설정하지 않아도 된다는 내용이 있었던 것 같아서 헷갈립니다.감사합니다.
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
TypeORM과 mysql을 사용하시는 분들
TypeORM과 mysql을 사용하여 실습하시는 분들은아래와 같이 Entity 정의에 'class-transformer' 라이브러리에 있는 '@Exclude()'데코레이터와 'instanceToPlain'메서드를 사용하여 password 노출을 막을 수 있습니다.위 사진처럼 Entity 파일에 @Exclude() 사용고양이 데이터를 불러오는 서비스(getCurrentCat) 로직에서 위와 같이 instanceToPlain을 사용하시면 됩니다!
-
해결됨프론트 개발자를 위한 백엔드 101 (NestJS, TypeORM)
터미널에서 자동완성 되는건 어떤 프로그램인가요?
터미널에서 자동완성 되는건 어떤 프로그램인가요?맥유저입니다
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
질문 있습니다.
안녕하세요. API 개발을 하다가 클라이언트의 IP를 가져와서 사용 할 일이 생겼습니다.간단하게 Request 객체의 ip 값을 가져와서 사용하려고 하는데, 저희 클라이언트가 NextJS의 SSR을 사용해서 렌더링을 하고있어서 브라우저에서 요청을 하면 NextJS 서버 -> NestJS 서버로 요청이 들어가 IP가 요청을 보낸 유저의 IP가 아닌 배포하고있는 서버의 IP로 들어오고 있습니다. 이 문제는 user-agent 값 확인을 통해서 원인을 파악 할 수 있었습니다. 문제를 해결하기 위해 NextJS에서 axios요청을 할 때, 헤더에 클라이언트의 원본 아이피를 가져와서 달아주고 서버에서 해당 헤더의 값을 가져와서 사용하고자 했습니다.생각처럼 됐으면 좋았겠지만, 왜인지 서버에서는 계속 배포하고있는 서버의 IP를 가져오고 있는 상태입니다. 커스텀 헤더에 달아준 값을 확인해봐도 서버 IP가 찍히고 있는데요. 클라이언트 로그에서는 또 원본 IP가 잘 찍히고 있습니다.Nginx를 사용중인데 Nginx에서 문제가 생기고 있는건지, 어디가 잘못된건지 감이 안와서 질문 남깁니다. 어떻게 하는게 좋을까요? 추가로, 클라이언트의 원본 IP를 받아오는 다른 방법이 있을까요?감사합니다.
-
미해결따라하며 배우는 NestJS
커스텀 파이프에서 value의 타입이 string 이 아닐때
여기서 value.toUpperCase()를 먼저 실행하고 있는데, value에 toUpperCase 메소드가 없는 타입이 온다면 어떻게 될까요?
-
해결됨프론트 개발자를 위한 백엔드 101 (NestJS, TypeORM)
module에서 import, export, provider, controller..
안녕하세요 캡쳐 사진은 auth.module인데요 다름이 아니라 import, export, provider, controller 할때 무엇을 적을지 어떻게 명확히 아나요?userModuel같은 경우는 auth.conroller나 service에서 사용되지오 안하고(강의시점), stratigies 파일에서도 사용되지 않았습니다. 이리 구현할 내용을 알고 위에처럼 적으신걸까요?
-
해결됨프론트 개발자를 위한 백엔드 101 (NestJS, TypeORM)
슬랙채널 가입이 안됩니다.
이 부분 해결하는 방법은 아실까요?
-
미해결따라하며 배우는 NestJS
nestjs 기본 구조 설명에서 궁금한게 있습니다.
기본 구조 설명을 듣던 중에 eslintrc.js라는 폴더가 있다고 하시는데 nest가 11.0.2인 버전에서는 없는 것 같아서요. 분명 이 기능을 하는 파일은 있을 텐데.. 혹시 eslint.config.mjs가 아닐까 궁금합니다.
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
(강의 5:42 질문) providers를 통한 여러 개의 인스턴스 생성 & exports 통한 싱글톤 생성
providers를 통해 등록된 UsersService는 싱글톤인지 궁금하여 nest.js 공식문서를 찾아보았습니다. UsersModule의 exports를 통해 캡슐화된 공급자들을 내보내고, AppModule에 UsersModule을 imports배열에 추가해서 가져오면 providers에 등록하지 않아도 자동으로 주입을 해주며, 인스턴스를 공유하는 싱글톤으로 주입받는다고 이해했습니다. 반면, UsersService를 필요한 모듈 각각의 providers 배열에 등록하게 된다면 등록된 모듈마다 인스턴스가 생성해서 주입하는 것으로 이해하였습니다. 공식문서에는 싱글톤으로 생성되서 관리된다면 메모리를 아낄 수 있고, 리소스의 관리가 쉬워진다는데 질문 1. 리소스의 관리가 쉬워지는건 같은 변수를 공유하기 때문이라고 이해해도 괜찮을까요? 질문 2. 제가 이해한 내용에서 잘못된 부분이 있는지 궁금합니다. 질문 3. providers 배열에 모듈마다 등록해서 인스턴스를 계속 찍어내야 하는 예시가 궁금합니다.(싱글톤의 장점은 어느정도 이해가 되지만, 그 반대의 경우에는 어떤 상황에서 사용할 때 장점이 있는지 생각이 떠오르지 않습니다)(집에 가면서 생각해봤는데 설정이 서로 다르게 주입되어야 하는 경우가 있다면 사용될 수 있을 것 같습니다.)
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
코드 편집기 확장 프로그램
코드편집기에 6, 12번째 줄에 회색 바탕에 context, event, listener로 표시되어있는 확장 프로그램 저도 쓰고싶은데 혹시 vs코드에도 비슷한 프로그램 있을까요?혹시 없다면, 웹스톰의 확장 프로그램은 무엇을 쓰시는지 알 수 있을까요?
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?
만약 환경변수를 비밀저장소를 통해 받아온다면, 비밀 저장소 인증에 대한 환경변수는 어떤 방식으로 가져오는지 궁금합니다.(비밀저장소에 접근하기 위한 인증 정보는 로컬.env 파일에 저장해야 하는건가요?)
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문
const getEnv = async ()=>{ const response = await axios.get(’/비밀키요청’) return response.data } 강의에서 위 코드를 통해 비밀키를 받아오는 예시를 작성해 주셨는데 ConfigModule.forRoot({isGlobal:true, load: [getEnv]})과정에서getEnv와 같은 비동기 함수를 등록한 경우 forRoot 내부적으로 await을 통해 메서드가 동작을 완료할때까지 기다리는지 궁금합니다.(비동기 함수를 등록해도 forRoot의 내부 동작으로 처리되는지?)
-
미해결따라하며 배우는 NestJS
typeorm ^10.0.2 버전 사용시 No metadata for "BoardRepository" was found. 오류 발생 해결방법.
@nestjs/typeorm: ^10.0.2 버전에서도 정상 동작합니다.아래 코드 참고하셔서 수정해 보세요. boards.module.ts 파일에서 providers 부분 수정.... @Module({ imports: [TypeOrmModule.forFeature([Board])], controllers: [BoardsController], providers: [BoardsService, BoardRepository], // BoardRepository 추가 }) export class BoardsModule {}board.repository.ts 파일에서 수정import { Injectable } from '@nestjs/common'; import { DataSource, Repository } from 'typeorm'; import { Board } from './board.entity'; import { CreateBoardDto } from './dto/create-board.dto'; import { BoardStatus } from './board-status.enum'; @Injectable() // 변경 export class BoardRepository extends Repository<Board> { // constructor 추가 constructor(dataSource: DataSource) { super(Board, dataSource.createEntityManager()); } }
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.
import { createParamDecorator, ExecutionContext } from '@nestjs/common'; //저장된 사용자 정보에 접근 가능 export const User = createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); console.log('사용자', request.user.id); return request.user; }, );위에있는것은 로그인을 하게되면 유저의 아이디값을 가져오는데 로그인가드쪽을 보면 여기서는 자꾸 false값이 나옵니다.다른쪽 로직도 작업하신 코드 그대로 사용을 했는데 왜자꾸 false값만 나올까요....import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; import { Request } from 'express'; import { Observable } from 'rxjs'; @Injectable() export class LoggedInGuard implements CanActivate { canActivate( context: ExecutionContext, ): boolean | Promise<boolean> | Observable<boolean> { const request = context.switchToHttp().getRequest() as Request; console.log('로그인햇니?????????', request.isAuthenticated()); return request.isAuthenticated(); } } 로그인 유지가 안되는거로 보이기는 하는데 해결법이 있을까요?
-
미해결따라하며 배우는 NestJS
Model과 Dto의 차이점을 좀 쉽게 알수 있을까요?
Model과 Dto의 차이점을 좀 쉽게 알수 있을까요?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
로그인방법이 고민됩니다.
제가 프론트에서는 nextauth를 사용하고 잇고 nest에서는 passport를 이용하고 있는데 둘다 인증및 인가를 위한 라이브러리다보니까 한쪽에서만 인증 인가를 하는게 맞는것인지 아니면 둘다 써도 문제 없는것인지 궁금합니다.
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
yarn seed 명령어 실행 시 데이터 삽입 안됨
이렇게 성공 메세지는 뜨는데 테이블 조회를 해보면 데이터 삽입이 안되어 있습니다.어떤부분에서 오류를 해결해야 할까요?....
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
yarn run db:create 시에 발생하는 데코레이터 오류
제목처럼 명령어 실행시 아래와 같은 오류가 발생했습니다.Decorating class property failed. Please ensure that transform-class-properties is enabled and r uns after the decorators transform.이 오류는 타입스크립트 데코레이터와 클래스 필드초기화 문제로 보입니다. 엔티티를 처리하는 과정에서 데코레이터가 클래스 필드와 충돌을 일으키는 것으로 보입니다. 갑자기 생긴 오류에 tsconfig.ts 파일도 수정해보고 엔티티를 다시 점검해봐도 오류가 해결이 안되서 질문드립니다.오류가 발생하는 부분입니다.at _initializerWarningHelper (src/entities/DMs.ts:12:964) at DMs.<instance_members_initializer> (src/entities/DMs.ts:58:286) at new DMs (src/entities/DMs.ts:58:270) at EntityMetadata.create (node_modules/src/metadata/EntityMetadata.ts:568:23) at EntityMetadataValidator.validate (node_modules/src/metadata-builder/EntityMetadataValidator.ts:211:47) at node_modules/src/metadata-builder/EntityMetadataValidator.ts:43:18 at Array.forEach (<anonymous>) at EntityMetadataValidator.validateMany (node_modules/src/metadata-builder/EntityMetadataValidator.ts:42:25) at DataSource.buildMetadatas (node_modules/src/data-source/DataSource.ts:730:33) at processTicksAndRejections (node:internal/process/task_queues:95:5) error Command failed with exit code 1.DMs 엔티티의 문제인가 싶어서 제로초님의 코드를 다시 작성해보고 살펴보아도 문제가 해결되지 않습니다.추가로 yarn seed명령어도 안됩니다,,,