[문제]
var fileExtension = IMG_FILE[0].name.split('.').pop().toLowerCase();
- 업로드 한 이미지 파일의 형식을 알기 위해 위와 같이 선언했을 때, 객체 참조 오류가 발생했다.
- 이미지 파일을 업로드 하지 않았을 때 IMG_FILE의 객체가 선언되지 않아서 발생한 문제였다.
[원인]
- 스크립트 코드에서 다른 객체에 접근할 때 해당 객체가 정의 되지 않았을 때 Cannot read properties of undefined 오류가 발생 한다.
- 해당 오류를 방지하려면 Optional Chainig 연산자를 활용할 수 있다.
[해결]
방법 1)
if (typeof IMG_FILE !== 'undefined' && IMG_FILE.length > 0) {
var fileExtension = IMG_FILE[0].name.split('.').pop().toLowerCase();
// 나머지 작업 수행
} else {
console.log('IMG_FILE 배열이 정의되지 않았거나 비어 있습니다.');
}
- typeof로 객체 타입이 정의 되었는지 와, IMG_FILE 배열의 길이가 0 보다 큰지 확인하는 방식으로, 변수의 존재 여부와 배열이 비어있는지 확인 후, 존재할 때 업로드 한 이미지 파일 형식을 가져오게 한다.
방법 2)
var fileExtension = IMG_FILE[0]?.name.split('.').pop()?.toLowerCase();
- Optional Chaning 연산자를 활용 해서, IMG_FILE 배열의 첫 번째 요소가 정의 되어있으면 name 속성에 접근하고, 정의가 되어 있지 않으면 undefined 를 반환한다.
300x250
'DevelopNote > 오류 모음' 카테고리의 다른 글
재시도 횟수(10)를 초과하여 작업을 수행하지 못했습니다.파일은 다른 프로세스에서 사용 중이므로 프로세스에서 액세스할 수 없습니다. (0) | 2024.03.13 |
---|---|
[C#] microsoft.ace.oledb.12.0' provider is not registered on the local machine (0) | 2024.01.04 |
Spring + Hibernate enum 타입 문제 해결 (0) | 2023.08.05 |
[Git] git permission denied (publickey) 오류 (0) | 2022.06.22 |
[Error - c# ] CompnentModel error (0) | 2022.05.15 |