인프런 커뮤니티 질문&답변

노강표님의 프로필 이미지
노강표

작성한 질문수

풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)

express 서버 및 json database 만들기

파일 읽어오기 질문..

해결된 질문

작성

·

331

0

1. routes/messages.js 

2. dbController.js

질문.. 

1. console.log로 확인해보면 undefined가 출력되는걸로 봐서 파파일을 못읽어오는거같은데 원일을 못찾겠습니다..  (DB파일의 아이디는 문자열로 바꿨습니다!)

2. 유력한 후보가 경로설정을 잘못해줘서 그런거같은데 basePath를 설정하는과정에서 resolve()가 정확히 무슨 뜻인가요?? 경로를 문자열로 바꿔주는걸로 알고있는데  

resolve(basePath, ...); 이렇게 작성된 부분을 해석을 못하겠습니다..

 

 

 

 

답변 1

0

정재남님의 프로필 이미지
정재남
지식공유자

1. basePath를 출력해보세요. terminal에 출력될 거에요.

2. resolve는 node.js의 path.resolve입니다. 여러개의 경로를 병합해주는 역할이에요.
예를 들어 Mac의 경우 basePath는 '/Users/username/study/api-practice/server'  이런 식의 경로를 가집니다.
Win의 경우에는 'c:\api-practice\server' 이런 식일거에요.
이 상태에서 resolve(basePath, 'src/db/messages.json') 이라고 하면
결과는

'/Users/username/study/api-practice/server/src/db/messages.json' (MAC)
'c:\api-practice\server\src\db\messages.json' (WIN)

이렇게 나오게 됩니다.

노강표님의 프로필 이미지
노강표
질문자

답변감사합니다.. 혹시 공식문서에보면

path.resolve('/foo/bar', '/tmp/file/');
// Returns: '/tmp/file'

이런 결과값을 나타내는데.. 혹시 이건 왜 이런건지 여쭤봐도될까요..? 

정재남님의 프로필 이미지
정재남
지식공유자

둘 다 절대경로라서 그래요.

노강표님의 프로필 이미지
노강표
질문자

하하.. basePath는 잘출력됬는데 방금보니 .json파일에서 id를 문자열로 바꿔주는 과정에서 콤마하나를 뺴먹었엇어서 에러가 발생했었습니다 ㅠ...

정재남님의 프로필 이미지
정재남
지식공유자

디버깅을 위한 삽질도 꼭 필요한 시간이니 넘 자책하지 말아요 :)

노강표님의 프로필 이미지
노강표
질문자

넵! 감사합니다!!

노강표님의 프로필 이미지
노강표

작성한 질문수

질문하기