inflearn logo
강의

Khóa học

Chia sẻ kiến thức

NestJS phụ trợ vững chắc, từ cơ bản đến nâng cao

Dữ liệu mèo Tạo Đọc phát triển API

전체 고양이 조회 라우터 중 error.message 오류

67

devjihye

3 câu hỏi đã được viết

0

app.get("/cats", (req, res) => {
  try {
    const cats = Cat;
    res.status(200).send({
      success: true,
      data: {
        cats,
      },
    });
  } catch (error) {
    res.status(400).send({
      success: false,
      error: error instanceof Error ? error.message : String(error)
    });
  }
});

강의에서는 단순히

catch (error) {
    res.status(400).send({
      success: false,
      error: error.message
    });
  }

이렇게 나오는데, 저는 이렇게 적으면 error의 타입이 'unknown'이라는 오류 메시지가 뜹니다.

상단에 있는 코드처럼 적어야 오류가 해결됩니다.

 

강의에서는 왜 오류가 나지 않을까요?

node.js mongodb express nestjs ssr

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

김지혜님, TypeScript에서는 catch 블록 내의 error 변수 타입이 기본적으로 unknown으로 간주됩니다. 그래서 error.message에 바로 접근하려 하면 타입 오류가 발생할 수 있습니다. 강의에서는 TypeScript의 버전에 따라 이 오류가 발생하지 않을 수 있습니다.

TypeScript 4.4부터 catch 문의 error는 기본적으로 unknown으로 취급됩니다. 이에 따라 error.message에 직접 접근하려면 instanceof로 오류 객체 유형을 확인하거나 error as any로 타입을 단언해야 합니다. 상단의 코드처럼 error instanceof Error ? error.message : String(error)를 통해 Error 타입인지 확인한 후에야 message 속성을 안전하게 참조할 수 있습니다.

유사한 질문과 해결 방법에 대한 내용은 다음 질문에서 확인하실 수 있습니다:
- 이전 강의에서 catch에서 오류나는 분들 & CREATE 안되시는 분들 위해 남깁니다.

여기서 TypeScript의 오류 처리와 관련된 내용을 더 깊이 있게 이해하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

프로젝트 환경 세팅할 때 최신 노드 버젼을 사용하시는 분들은 참고하셔도 좋을 것 같아요~

2

80

1

DTO에 대한 질문

1

87

2

백엔드 MVC에서 View의 역할은 무엇인가요?

1

93

2

추가 업데이트 관련 건

0

90

2

nest js 버전문제

0

80

2

mongdb 스키마 공식 문서와 형태가 다른 이유 궁금합니다.

0

103

1

라인 끝에 에러 표시(eslint) 때문에 구글 찾아 보니.

0

74

1

캡슐화 추가 설명 중 단일책임원칙 관련 질문

0

104

0

TypeORM과 mysql을 사용하시는 분들

4

140

1

42강 고양이끼리 소통 댓글 구현 중 Schema hasn't been registered for model 'comments' 에러 해결

0

82

1

채팅 이슈

0

133

1

모듈이 더 이상 지원하지 않는답니다

0

206

1

오류가 있습니다

0

106

1

import 에서 오류가 납니다

0

127

1

이런 오류가 나옵니다

0

100

1

에러가 발생합니다

0

109

1

프론트 에러 뜨는데 수정 안해주시나요

0

156

1

emit() broadcast.emit() 질문있습니다

0

101

1

서버연결이 안됩니다.

1

403

1

[PM2][ERROR] Command not found

0

520

1

S3에 업로드까지는 성공했는데 사진이 나오지 않습니다.

0

248

1

error_code : Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.ts(2339)

0

601

1

jwt를 따로 연습하고 있는데 env를 못읽는 것 같습니다.

0

322

2

Ec2로 안하시는 이유가 있을까요?

0

343

1