Node.js + puppeteer формирование отчетов

5 000 руб. за проект
31 марта 2020, 10:04 • 11 откликов • 64 просмотра
Реализовать сервис формирования отчетов, используя puppeteer.
На вход сервиса будет поступать html код и путь к css файлу. Это код нужно передать puppeteer, сделать скриншот всего экрана и вернуть результат: путь к скриншоту.

api

/createReport (post)

Параметры:

- jwt (JSON Web Tokens)
- html - код который
- viewportWidth
- format: pdf or png or jpeg

Jwt содержит

- css - путь к css файлу

Ответ в формате JSON

- filePath - имя файла скриншота (результат puppeteer);


Сервис ежечасно должен удалять ранее сформированные скриншоты: удалять те файлы, которые созданы более 6 часов назад.



Сервер будет запускать через PM2 https://pm2.keymetrics.io/

В pm2.config.js секции env (env_production) могут быть переданы следующие переменные:

- MZR_IMAGE_REPORT_PORT - порт на котором будет висеть сервис
- MZR_IMAGE_REPORT_HTTP_KEY - пример /etc/letsencrypt/live/domain.com/privkey.pem (используется если порт 443)

- MZR_IMAGE_REPORT_HTTP_CERT - пример /etc/letsencrypt/live/domain.com/fullchain.pem (используется если порт 443)
- MZR_IMAGE_REPORT_WEB_ROOT - путь к папке, содержимое которого будет отдаваться как статика. В этой папке будут храниться все скриншоты.


Сервис также всегда слушает порт 80, чтобы отдать файлы MZR_IMAGE_REPORT_WEB_ROOT /.well-known/acme-challenge/* для letsencrypt



Использовать express.js
Использовать typescript
Написать тесты.
Срок 7 дней


Файлы
Отзывы
R50 2875d3cf1f928f46fc1950d84ee8cf81
Заказчик
Спасибо за выполненную работу!
~ 4 года назад
R50 43134805e98dbcc2d67faba1e59902e7
Фрилансер
доволен сотрудничеством
~ 4 года назад