티스토리 뷰
반응형
코드를 먼저 보면 다음과 같다.
http.get을 통해 리모트 경로의 파일을 요청하고 응답으로 반환되는 Readable한 객체의 pipe 메소드를 통해 csv-parser를 실행시켜 주면된다.
참고로 readStream과 writeStream이 존재할 때 pipe는 다음과 동일하게 변경할 수 있다.
const readStream = fs.createReadStream("some file"); // response
const writeStream = fs.createWriteStream("another file");
readStream.on("data", (chunk) => {
writeStream.write(chunk);
});
// can be ==> readStream.pipe(writeStream);
gist 예시의 pipe를 제거해보려고 했으나, 아직은 어떻게 하는지 모르겠고 csv-parser 모듈에도 그런 설명이 없어 넘어가기로 한다.
csv-parser 모듈의 리드미에는 로컬에 존재하는 csv파일을 기준으로 아주 쉽게 설명되어 있으나, 막상 이를 리모트 파일로 변경하려다보니 온갖 이슈(파일을 다 읽기 전에 파싱을 시작해버린다거나, 이전에 읽은 것이 남아 있다거나...)가 발생하였다.
stream과 pipe에 대해 대략적으로라도 알고 시작했으면 더 빨리 해결할 수 있었을텐데 하는 아쉬움이 남는다.
더 유명한 csv 파싱 모듈로 papaparse가 있는데, 이것도 마찬가지로 리모트 파일에 대한 공식 예시 코드가 없어 어려움이 있었다.
좀 더 파악이 되면 다시 시도해봐도 좋을 것 같다.
반응형
'Javascript' 카테고리의 다른 글
call, apply 그리고 bind (0) | 2020.07.01 |
---|---|
Javascript 변수 값의 변경을 감지하기 (2) | 2020.06.30 |
Immutable object 만들기 (0) | 2020.06.10 |
fetch request의 처리를 취소하기 (0) | 2020.03.11 |
마우스 및 터치 이벤트 시뮬레이션 (0) | 2020.02.06 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total