빌드는 잘 되었고 pm2 start를 하는데 typeerror가 발생합니다.
배포를 준비하고 있는데
개발/로컬 환경에서는 문제가 없이 잘 되다가
상용 환경에 배포를 하려고하니 에러가 발생하고 있습니다.
빌드는 에러 없이 잘 되었는데 pm2 start를 하니 [TypeError: Cannot read properties of undefined (reading 'filter') 타입에러가 갑자기 나타나버렸습니다.
우선 filter 사용하는 부분에 대한 예외처리들을 넣어주었는데 동일한 에러가 계속 발생하고 있습니다. 어떠한 경우에 이런 에러가 발생하는 것일까요?
답변 2
0
안녕하세요 이정환입니다.
TypeError: Cannot read properties of undefined 오류는
사실 undefined 값이 할당된 변수이지만, 객체 또는 배열 값이 할당되어 있을거라 예상하고 코드를 작성했을 경우 발생합니다. 에러 메세지에 나타난 (reading 'filter')를 통해 추론하건데, 아마 변수에 배열이 담길거라 예상하셨지만 실제로는 undefined이 담긴 부분이 존재 하는것 같습니다.
에러메세지 전문에는 위 메세지와 더불어 코드 어디에서 에러가 발생했는지도 함께 표시될텐데요 해당 오류가 발생한 코드를 직접 확인하셔서 찾아보시면 해결할 수 있을 것 같습니다.
PS. 100% 순도의 추측이지만 ... 아마 빌드 과정에서는 에러가 발생하지 않았다면 서버측에서 반환받는 데이터가 무조건 배열 형태일 것이라고 단정하지 않았나 싶습니다!
0
안녕하세요, 인프런 AI 인턴입니다. Hailey.h.jang님.
배포 과정에서 발생한 TypeError: Cannot read properties of undefined (reading 'filter') 오류는 주로 데이터가 예상되는 배열이나 객체 형태가 아닐 때 발생하는 문제입니다. filter 메서드를 사용하려면 배열이 있어야 하는데, 이상하게도 undefined 값을 읽고 있어서 발생하는 에러입니다. 이 문제는 주로 데이터가 제대로 로드되지 않거나, API로부터 데이터를 받지 못했을 때 자주 발생합니다.
주요 원인 및 해결 방법:
API 통신 문제:
- 상용 환경에서 API 요청이 실패하거나 예상치 못한 값을 반환하는 경우가 있을 수 있습니다. API 통신 시 데이터가 제대로 반환되는지 확인하세요.
- 네트워크 관련 문제, 인증 오류 등을 확인해 보세요.
- 상용 환경에서 API 요청이 실패하거나 예상치 못한 값을 반환하는 경우가 있을 수 있습니다. API 통신 시 데이터가 제대로 반환되는지 확인하세요.
데이터 초기화 문제:
- 런타임 시점에 데이터가 없거나 초기화되지 않은 상태일 가능성이 있습니다. 필터를 사용하기 전에 해당 데이터가 배열인지 확인하는 방어 코드를 추가하는 것이 좋습니다.
- 런타임 시점에 데이터가 없거나 초기화되지 않은 상태일 가능성이 있습니다. 필터를 사용하기 전에 해당 데이터가 배열인지 확인하는 방어 코드를 추가하는 것이 좋습니다.
const filteredData = (dataArray || []).filter(item => item !== null);
환경 차이:
- 로컬 환경과 실제 서버 환경에서 사용하는 환경 변수가 다르거나 설정이 잘못 되어 있을 수 있습니다.
.env파일 또는 환경 변수 설정을 다시 한번 점검해 보세요.
- 로컬 환경과 실제 서버 환경에서 사용하는 환경 변수가 다르거나 설정이 잘못 되어 있을 수 있습니다.
pm2 설정 문제:
pm2가 제공하는 로깅을 통해 더욱 상세한 에러 로그를 확인해 보시는 것도 권장합니다. 예를 들어, 시작 전에$ pm2 logs를 통해 어떤 오류가 발생하는지 확인할 수 있습니다.
관련된 기존 질문과 답변을 참고해 보시면 도움이 될 수 있습니다:
위의 조언들이 문제를 해결하는 데 도움이 되기를 바랍니다. 문제가 지속되면 구체적인 코드 조각이나 로그를 추가로 검토해 볼 수 있도록 부탁드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
풀라우트캐시 동작 원리에서 데이터 캐시 관련 질문
0
22
2
next.js 프로젝트
0
27
1
Next.js + Tanstack Query BFF 구조 질문
0
29
2
Next.js 사전렌더링 이해하기 부분
0
33
2
모달 관련 질문
0
42
3
렌더링 관련 질문
0
80
2
중복으로 하나의 api를 요청할 때 캐싱 옵션 통일화
0
64
2
라우트 세그먼트 옵션 강좌 노트에 사소한 제보 남깁니다.
0
65
2
SSR시 context에 params말고 query를 사용하면 안되나요?
0
75
2
npx prisma db push 시 에러가 뜹니다.
0
94
3
vercel 배포를 실패하였습니다.
0
101
3
Image 컴포넌트 사용시 브라우저 콘솔에 경고는 왜 뜨는걸까요?
0
57
2
getServerSideProps 함수와 SSR의 관계
0
78
6
없는 페이지인데 풀라우트캐시로 저장이 되는 이유가 궁금합니다
0
61
2
실제 프로젝트에서 SSR 사용에 관해서 질문드립니다.
0
117
2
일반적인 nextjs project architecture에 대하여..
0
90
2
2.14 Search에서 작성한건 static이긴하지만 CSR이 아닌가요?
0
74
2
배포 시 오류 발생
0
90
2
백엔드 서버 오류납니다.
0
83
2
취약점 제거시 nestjs 버전 문제가 생길까요?
0
93
1
eslint.config.mjs 내 rules 어떻게 설정 하나요?
0
107
1
[book]/[id]/page.tsx 모달 띄울 때 성능 하락 현상은 ReviewList를 불러오면서 발생하는 문제 같습니다.
0
63
2
빨간줄 설정
0
77
2
익스텐션 질문
0
61
1





