벡엔드 개발 삽질1

DEVJUN·2022년 6월 12일
2

개발일기

목록 보기
1/2

맥과 윈도우의 파일 경로


  요즘 졸업작품을 Swift로 IOS App을, Node Express과 MySQL을 이용하여 벡엔드를 구현하고 있다. 앱에서 Node로 구현한 API를 호출하는 형태로 만들고 있는데 Swift의 에뮬레이터가 불편하여 직접 아이폰을 연결하고 아이폰으로 만들고 있는 앱을 테스트 해보려 했고, 학교 과실 PC를 서버로 만들어 접속하도록 시도해보았다. 그리고 상품을 등록하는 기능을 사용해보았다.

  상품 테이블에는 다음 사진과 같이 이미지의 경로가 ,(콤마)로 구분되어 저장이 된다.

  맥에서는 경로가 정상적으로 /(슬래시)로 저장되었지만, 과실 PC는 윈도우였기 때문에 (백슬래시)로 저장되어 다음 사진과 같이 이미지 경로로 서버에서 이미지를 불러오는 부분에서 에러가 발생했다.




이미지를 가져오는 API이다.

  여기서 경로 배열을 문자열로 변환 하는 저 주석이 달린 코드를

	img: path.toString().replaceAll('\\', '/')

  다음과 같이 바꾸어서 MySQL로 쿼리를 날리면 정상적으로 이미지 경로가 /(슬래시)로 나뉘어져 저장이 되어 에러를 해결할 수 있었다. 그러나 분명 저렇게 일시적 방편이 아닌 노드에서 맥과 윈도우의 저런 다른 문제를 해결해줄 수 있는 프레임워크가 있는지 찾아봐야겠다는 생각이 들었다.

profile
🧑🏻‍💻iOS

1개의 댓글

comment-user-thumbnail
2022년 6월 14일

이미지 삽입에서 플랫폼별 호환을 위해 path.join('uploads', path.sep)로 해결될것 같습니다.

multer({
  ...
  destination(req, file, cb) {
    cb(null, path.join('uploads', path.sep));
  },
})

단, 이미지 조회는 아직까지 replaceAll을 계속 유지할 수 밖에 없겠네요.

답글 달기