거인의 어깨위에 서려는/트렌디한 개발자를 위한
간단한 분석 HTML 페이지 생성 & PDF로 변환하는 방법
Jane Park
2020. 11. 15. 20:17
필요한 것
-
서버리스 플랫폼 (Firebase Cloud Functions, AWS Lambda 등)
-
클라우드 스토리지 (Firebase Storage, AWS S3 등)
-
Puppeteer
-
Handlebars (HTML 템플릿 언어)
방법
-
각 서버리스 플랫폼에서 제공하는 프로젝트 초기화 방식으로 node.js 기반의 서버를 생성한다.
-
puppeteer와 handlebars를 npm으로 설치
-
템플릿으로 사용할 HTML 파일을 클라우드 스토리지에 올려둔다.
-
함수 내부 플로우
-
클라우드 스토리지에서 파일을 다운받는다.
-
API body로 템플릿에 필요한 파라미터를 가져온다.
-
추가 계산/분석 로직이 필요하면 작업한다.
-
handlebars를 이용해 컴파일하고 결과물을 임시로 만든 html 파일에 저장한다. (node.js의 기본모듈 path, fs 사용)
-
저장한 html 파일을 puppeteer를 이용해 pdf로 export 시킨다.
-
Response.sendFile로 생성된 pdf 파일을 전달
-
response.on('finished') 이벤트가 호출되면 fs에 링크된 html, pdf 파일 (임시) 들을 unlink 한다.
-