inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

ftp 서버 문의 입니다

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요. 우분투 서버에서 ftp 서버을 사용하고 있습니다. nestjs-ftp 을 사용해서 다운로드 하면 upload, download는 가능한데(우분투 서비 컴퓨터에) upload만한 위치 주소만 링크를 시키고 싶은데 안됩니다. aws같이 다운로드 url주소만 가져올수 있는 방법이 있을까요? frontend에서 이미지를 등록을 할려고 하니 url주소가 없어서 등록이 안됩니다. aws을 사용할려고도 생각해 보았으나 사진이 많이 업로드 되어야 해서 비용적인 부담이 있습니다.

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
corp.starcoex 댓글 2 좋아요 0 조회수 356

nest g resource관련 질문

해결됨

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

저 명령어로 posts을 만들고 나서 파일을 삭제하였다가 다시 posts를 만들고 서버를 실행하였는데 사진과 같은 오류가 생겼습니다. app.module.ts 파일에는 저런 코드가 없는데 왜 그런지 알려주세요. 그리고 올바르게 posts리소스를 삭제하는 방법을 알려주세요.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
코린이 댓글 1 좋아요 0 조회수 341

figma에서 code가 보이질 않아요.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

figma에서 클릭을 해서 눌러도 옆에 properties/comment/Export 이 칸에서 code가 따로 보이지 않습니다. 어떻게 된건가요?

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
wnsghdnjs123 댓글 1 좋아요 0 조회수 442

python-telegram-bot 2021년 20 버전 이후

미해결

파이썬으로 영화 예매 오픈 알리미 만들기

python-telegram-bot 20 버전부터는 비동기 프로그래밍이 적용되어 강의와는 다른 코드가 필요합니다. https://github.com/python-telegram-bot/python-telegram-bot/wiki/Introduction-to-the-API 위 깃허브 python-telegram-bot 공식 위키 페이지로 가시면 필수적이고 간단한 용례들을 보실 수 있습니다.

  • python
FastCampus 댓글 1 좋아요 0 조회수 1131

Exception Filter편에서 POST할 때 EntityMetadataNotFoundError에러가 납니다.

미해결

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

// users.module.ts import { Module } from '@nestjs/common'; import { UsersService } from './users.service'; import { UsersController } from './users.controller'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Users } from '../entities/Users'; @Module({ imports: [TypeOrmModule.forFeature([Users])], providers: [UsersService], controllers: [UsersController], }) export class UsersModule {} // app.module.ts import { MiddlewareConsumer, Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { ConfigModule } from '@nestjs/config'; import { LoggerMiddleware } from './middlewares/logger.middleware'; import { UsersModule } from './users/users.module'; import { WorkspacesModule } from './workspaces/workspaces.module'; import { ChannelsModule } from './channels/channels.module'; import { DmsModule } from './dms/dms.module'; import { UsersService } from './users/users.service'; import * as process from 'process'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Users } from './entities/Users'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true }), UsersModule, WorkspacesModule, ChannelsModule, DmsModule, TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', port: 3306, username: process.env.DB_USER, password: process.env.DB_PW, database: process.env.DB_NAME, entities: ['./entities/*.{js,ts}'], synchronize: false, logging: true, keepConnectionAlive: true, migrations: [__dirname + '/src/migrations/*.ts'], }), TypeOrmModule.forFeature([Users]), ], controllers: [AppController], providers: [AppService, UsersService], }) export class AppModule { configure(consumer: MiddlewareConsumer): void { consumer.apply(LoggerMiddleware).forRoutes('*'); } } // users.controller.ts import { Body, Controller, Post, Get, Req, Res, UseInterceptors, } from '@nestjs/common'; import { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'; import { JoinRequestDto } from './dto/join.request.dto'; import { UsersService } from './users.service'; import { UserDto } from '../common/dto/user.dto'; import { User } from '../common/decorators/user.decorator'; import { UndefinedToNullInterceptor } from '../common/interceptors/undefinedToNull.interceptor'; @UseInterceptors(UndefinedToNullInterceptor) @ApiTags('USER') @Controller('api/users') export class UsersController { constructor(private usersService: UsersService) {} //..... @ApiOperation({ summary: '회원가입' }) @Post() async join(@Body() body: JoinRequestDto) { await this.usersService.join(body.email, body.nickname, body.password); } import { HttpException, Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Users } from '../entities/Users'; import bcrypt from 'bcrypt'; @Injectable() export class UsersService { constructor() {} @InjectRepository(Users) private usersRepository: Repository<Users>; getUser() {} async join(email: string, nickname: string, password: string) { const user = this.usersRepository.findOne({ where: { email } }); if (!email) { throw new HttpException('이메일이 없습니다.', 400); } if (!nickname) { throw new HttpException('닉네임이 없습니다.', 400); } if (!password) { throw new HttpException('비밀번호가 없습니다.', 400); } if (user) { throw new HttpException('이미 존재하는 사용자입니다.', 400); } const hashedPassword = await bcrypt.hash(password, 12); await this.usersRepository.save({ email, nickname, password: hashedPassword, }); } } // a-nest/src/entities/Users.ts import { Column, Entity, Index, OneToMany, PrimaryGeneratedColumn, } from "typeorm"; import { Channelchats } from "./Channelchats"; import { Channelmembers } from "./Channelmembers"; import { Dms } from "./Dms"; import { Mentions } from "./Mentions"; import { Workspacemembers } from "./Workspacemembers"; import { Workspaces } from "./Workspaces"; @Index("email", ["email"], { unique: true }) @Entity("users", { schema: "sleact" }) export class Users { @PrimaryGeneratedColumn({ type: "int", name: "id" }) id: number; @Column("varchar", { name: "email", unique: true, length: 30 }) email: string; @Column("varchar", { name: "nickname", length: 30 }) nickname: string; @Column("varchar", { name: "password", length: 100 }) password: string; @Column("datetime", { name: "createdAt" }) createdAt: Date; @Column("datetime", { name: "updatedAt" }) updatedAt: Date; @Column("datetime", { name: "deletedAt", nullable: true }) deletedAt: Date | null; @OneToMany(() => Channelchats, (channelchats) => channelchats.user) channelchats: Channelchats[]; @OneToMany(() => Channelmembers, (channelmembers) => channelmembers.user) channelmembers: Channelmembers[]; @OneToMany(() => Dms, (dms) => dms.sender) dms: Dms[]; @OneToMany(() => Dms, (dms) => dms.receiver) dms2: Dms[]; @OneToMany(() => Mentions, (mentions) => mentions.sender) mentions: Mentions[]; @OneToMany(() => Mentions, (mentions) => mentions.receiver) mentions2: Mentions[]; @OneToMany( () => Workspacemembers, (workspacemembers) => workspacemembers.user ) workspacemembers: Workspacemembers[]; @OneToMany(() => Workspaces, (workspaces) => workspaces.owner) workspaces: Workspaces[]; } 서버 실행 후 http://localhost:3002/api/users URL로 빈 값을 POST로 보내면 콘솔창에 400 이메일이 없습니다. 라는 문구가 뜬 이후에 C:\Users\xxx\Documents\Project\NestProject\a-nest\src\data-source\DataSource.ts:448 if (!metadata) throw new EntityMetadataNotFoundError(target) ^ EntityMetadataNotFoundError: No metadata for "Users" was found. at DataSource.getMetadata (C:\Users\xxx\Documents\Project\NestProject\a-nest\src\data-source\DataSource.ts:448:30) at Repository.get metadata [as metadata] (C:\Users\xxx\Documents\Project\NestProject\a-nest\src\repository\Repository.ts:53:40) at Repository.findOne (C:\Users\xxx\Documents\Project\NestProject\a-nest\src\repository\Repository.ts:597:42) at UsersService.join (C:\Users\xxx\Documents\Project\NestProject\a-nest\src\users\users.service.ts:13:39) at UsersController.join (C:\Users\xxx\Documents\Project\NestProject\a-nest\src\users\users.controller.ts:37:29) at C:\Users\xxx\Documents\Project\NestProject\a-nest\node_modules\@nestjs\core\router\router-execution-context.js:38:29 at processTicksAndRejections (node:internal/process/task_queues:95:5) 위와 같이 EntityMetadataNotFoundError에러가 발생합니다. DB 커넥션 부분도 확인해보고, entities 부분이 문제인가 싶어 아래와 같이 변경도 해보았지만 TypeOrmModule.forRoot({ entities: ['./entities/*.{js,ts}'], ], 해결되지 않아 질문드립니다. 추가적으로 \data-source\DataSource.ts 부분과 \repository\Repository.ts부분은 실제 디렉토리에 없는 것들인데 왜 뜨는지도 모르겠습니다. 해결 방법이 있을까요?

  • node.js
  • express
  • nestjs
  • typeorm
CB S 댓글 2 좋아요 0 조회수 458

아니 수업중에 뭘 먹고 있으면 어떡해요;

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

어이없네.. 쿰척쿰척 먹는걸 왜 돈낸 강의에서 들어야함;; 진짜 짜증나네진짜

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
leejken530 댓글 2 좋아요 -2 조회수 502

put요청과 post요청의 차이는 뭘까요?

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 코드팩토리 통합 링크 https://links.codefactory.ai Flutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! 안녕하세요! 공부하다 궁금해서요 post도 추가할 수 있고 결국 put도 추가할 수 있는데 그럼 post랑 put의 차이점은 명확하게 뭘까요?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
찬찬잉 댓글 1 좋아요 0 조회수 366

Ioc 컨테이너에서 관리 중인 인스턴스는 클래스마다 하나씩만 존재할까요?

해결됨

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

안녕하세요. 섹션 7. 의존성 주입과 제어의 역전에 대해 보고 있습니다. 해당 부분을 보다가 의문점이 생겼습니다. 만약 B라는 클래스가 동시에 두군데에서 필요하다면 Ioc 컨테이너는 B 인스턴스를 두개를 생성해서 주입하나요? 아니면, 인스턴스는 무조건 하나만 생성하여 참조값으로 주입하는 건가요? 답변해주시면 감사하겠습니다.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
wookim 댓글 1 좋아요 1 조회수 394

diskStorage 사용관련 에러 문의

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

안녕하세요. storage코드 작성 후 diskStorage관련하여 TypeError가 발생하였습니다. 강의 내용과 동일하게 작성을 하였는데 빌드 시 해당에러가 발생하고 diskStorage의 인자에 아무것도 넣지 않아도 동일한 에러가 발생하는데 원인이 무엇인지 알 수가 없어서 글을 올립니다. module 코드입니다. error_msg코드입니다.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
bluelf1004 댓글 3 좋아요 0 조회수 535

안녕하세요:) Websocket사용 용도 질문드립니다.

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

강의 완강하고 요즘 연습하면서 한 가지 궁금증이 생겨서 질문드립니다. websocket 사용 용도가 실시간 커뮤니케이션이라고 알고 있는데요 인스타그램으로 예를 들면 다른 사람을 팔로우하면 바로 팔로우 카운트가 실시간으로 올라가는 거랑 유튜브에 댓글들이 실시간으로 생기는 방식들이 전부 webscoket으로 구현하는 게 맞나요?? 인스타처럼 상대방을 팔로우하면 제 팔로잉 카운트가 증가하는 동시에 상대방의 팔로워 카운트가 증가하는 로직을 만들었는데 곰곰이 생각해 보니 팔로우 카운트 증가는 제가 어떠한 http요청 없이 실시간으로 올라가고 내려가는데, 일반적인 api로직을 만드는 방식으로 하는 게 맞나 하는 의문이 생겨서 질문드렸습니다~

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
5km 댓글 1 좋아요 0 조회수 332

google 로그인 문제

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요. 구글 로그인시 authService에 setRefreshToken 함수를 불러오면서 setHeader오류가 발생합니다. @UseGuards(GqlAuthGuard('google')) @Get('google') async socialGoogleLogin( @Req() req: Request & IOAuthUser, @Res() res: Response & IContext, ) { let user = await this.usersService.findOne({ findOneUserInput: { email: req.user.email }, }); if (!user) { user = await this.usersService.create({ createUserInput: { email: req.user.email, password: req.user.password, name: req.user.name, }, }); } await this.authService.setRefreshToken({ user, context: res, }); res.redirect('http://localhost:5500/social-login.html'); } async setRefreshToken({ user, context }: IAuthServiceSetRefreshToken) { const refreshToken = await this.jwtService.sign( { sub: user.id }, { secret: 'coex', expiresIn: '4h' }, ); context.res.setHeader( 'set-Cookie', `refreshToken=${refreshToken}; path=/;`, ); } @Injectable() export class JwtRefreshStrategy extends PassportStrategy(Strategy, 'refresh') { constructor() { super({ jwtFromRequest: (req) => { const cookies = req.headers.cookie; const refreshToken = cookies.replace('refreshToken=', ''); return refreshToken; }, secretOrKey: 'coex', }); } async validate(payload: any) { return { id: payload.sub }; } } front error { statusCode : 500, message : "Internal server error" } server error [Nest] 90403 - 2024. 01. 10. 오후 7:10:04 ERROR [ExceptionsHandler] Cannot read properties of undefined (reading 'setHeader') TypeError: Cannot read properties of undefined (reading 'setHeader')

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
corp.starcoex 댓글 2 좋아요 0 조회수 313

port 가 계속 살아있는 문제.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

전에 했던 포트가 계속 살아있네요. 왜 그런거죠..? 나갈때 ctrl+z했는데.

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
leejken530 댓글 2 좋아요 0 조회수 256

영상을 멈추고 한번 풀어 보았습니다.

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

//query-runner.decorator.ts import { ExecutionContext, InternalServerErrorException, createParamDecorator, } from '@nestjs/common'; import { QueryRunner } from 'typeorm'; export const QueryRunnerDecorator = createParamDecorator( (data: unknown, context: ExecutionContext): { qr: QueryRunner } => { const req = context.switchToHttp().getRequest(); if (!req.queryRunner) { throw new InternalServerErrorException('queryRunner가 없습니다.'); } return { qr: req.queryRunner, }; }, ); //posts.controller.ts @Post() @UseGuards(AccessTokenGuard) @UseInterceptors(TransactionInterceptoer) async postPosts( @User('id') userId: number, @Body() body: CreatePostDto, @QueryRunnerDecorator() qr: QueryRunner, ) { .... 중략 } 트랜잭션을 interceptor로 관리하는것을 배워서 너무 유익하고 100점 만점의 100점 꿀팁이었습니다. https://www.npmjs.com/package/typeorm-transactional 해당 라이브러리를 원래 사용 했으나, 마음에 들지 않았었는데 덕분에 interceptor로 대체 할 수 있을것 같습니다 좋은 강의 만들어 주셔서 감사합니다!

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
rhkdtjd_12 댓글 1 좋아요 0 조회수 264

transaction interceptor을 사용할때 validation이 안되는 문제

해결됨

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

transaction interceptor을 사용할때 body field validation이 안되는 문제가 발생하여 query runner와 transaction interceptor 두코들 제외 하니 validationdl 다시 되었습니다. 혹시 어떤문제인지 알수 있을까요?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
정의진 댓글 1 좋아요 0 조회수 302

섹션별로 강의 파일 다운받을 수 있나요?

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

아는 부분은 제외하고 모르는 부분만 골라서 들으려는데 올려주신 깃허브 리포지토리에는 완성본만 남아있더라구요 혹시 각 섹션별로 강의 파일을 받을 수 있는 링크가 있을까요?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
박민 댓글 1 좋아요 0 조회수 221

섹션2 css기본과 싸이월드 실습 1탄

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

'css정렬' 강의에서 마지막에 회원가입을 숙제로 내주셨는데 그거에 대한 자세한 정보들을 어디서 얻을 수 있을까요?

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
wnsghdnjs123 댓글 2 좋아요 0 조회수 272

Part2 에 대해서 궁금합니다.

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

Part 1 에서 웬만한 건 다 배우는 것 같은데 Part 2 는 어떤 내용이고 언제쯤 공개되나요?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
제이크서 댓글 1 좋아요 0 조회수 334

현재 23.01.07 기준으로 하시는 분 계시면 보세요.

미해결

파이썬으로 영화 예매 오픈 알리미 만들기

해당 강의에서 작성하는 코드를 그대로 실행하면 되지 않습니다. 현재 iframe 태그가 자바스크립트를 통해 실행되기 때문에 페이지가 로드된 후에도 자바스크립트가 실행될 시간이 필요합니다. 강의처럼 iframe의 주소만 따와서 실행시키는 것이 아닌 전체 주소를 가져와 iframe 태그로 전환시켜주고 자바스크립트 실행까지 기다려 주는 방식으로 진행하셔야 합니다. https://velog.io/@os_js/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81%EC%9D%B4%EC%9A%A9-%ED%85%94%EB%A0%88%EA%B7%B8%EB%9E%A8-%EC%B1%97%EB%B4%87 저도 강의중 안됐던 내용이 있었기에 그에 대한 내용을 블로그에 올려두었습니다. 강의 진행대로 따라하다가 안되는 부분만 정리하여 올렸기 때문에 강의내용과 비교하시면서 보셔야 될 듯 합니다.

  • python
나도했음 댓글 1 좋아요 0 조회수 612

restoreAccessToken 질문입니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

열심히 보고 있습니다. restoreAccessToken을 플레이그라운드에서 테스트 하면 에러 코드 "errors": [ { "message": "Unauthorized", "locations": [ { "line": 2, "column": 3 } ], "path": [ "restoreAccessToken" ], "extensions": { "code": "UNAUTHENTICATED", "stacktrace": [ "UnauthorizedException: Unauthorized", 왜 접근을 하지 못하는 걸까요? 나머지는 정상 작동합니다. 참고로 Apollo Sandbox을 사용하고 있습니다.

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
corp.starcoex 댓글 2 좋아요 0 조회수 335

올려두신 github 레포지토리를 그대로 실행 시 오류가 발생합니다.

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

맨 처음 클론하고 나면 chats.gateway.ts 에서 socket.user라는 프로퍼티를 찾을 수 없다는 에러가 뜨고 있습니다. 에러가 나는 로직을 전체 주석시키고 나면, CommentsService에서 CommonService의 의존성을 찾을 수 없다는 에러가 뜹니다. ("Nest can't resolve dependencies of the CommentsService (CommentsModelRepository, ?)") CommonSerivce 의존성을 해결하고 나니 "TypeORMError: Entity metadata for UsersModel#postComments was not found." 라는 에러가 뜹니다. 위 에러를 고치고 나니 또 다른 에러가 뜨고 있습니다. 혹시 github 레포지토리 clone 해보셨을 때 문제 없는지 확인 가능 하실까요?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
한글영문대소문자 댓글 2 좋아요 0 조회수 447

인기 태그

인프런 TOP Writers

주간 인기글