고객에게 입력 받은 시리얼 쿠폰 번호의 공백을 제거하려고 replaceAll을 사용했다.
그런데 개발 서버에 올렸을 때 replaceAll이 사용된 API를 요청했을 때 response가 오지 않고 pending(대기) 상태가 되었다.
대기 상태가 지나고 브라우저 콘솔에 CORS 에러가 찍혔다. 이 부분이 문제인가 싶어 또 한참을 찾았는데, CORS 문제는 아니라고 생각한 건 이미 이전부터 cors 라이브러리를 사용하고 option을 다음과 같이 허용해주고 있었기 때문이다.
const corsOptions = {
origin: true,
credentials: true,
};
개발 서버가 올라간 ec2에서 pm2 log
명령어를 입력해 로그를 확인한 결과
다음과 같은 에러 메시지가 발생하고 있었다.
TypeError: replaceAll is not a function
구글링 결과 nodejs에는 replaceAll이 없다.
replace와 정규표현식을 함께 사용하라는 글을 보고 다음과 같이 수정했다.
serialNo.replace(/ /g, '')
공백(/ /
)을 전역적으로(g
) 검사해서 있으면 제거(''
)한다는 뜻이다.